Well, on the pitch the players lost meekly enough to long-since relegated Bristol Rovers but spectators were not so sheepish, mounting a second-half pitch invasion, digging up the pitch and dismantling advertising hoardings before the final whistle, throwing sods at the directors box and police, making off with at least four match balls and, after the match, the goalposts. Mick McCarthy's side deserved a better send-off.
'The troublemakers were not passionate supporters, they were criminals disguised,' chief superintendent Ken Chapman said. 'All they have done is damage the reputation of Millwall Football Club. It's a tragedy for people who feel passionately about the club, because nobody has done more in the community than this club.'
Elsewhere, the Bees lost their sting as cloudy First Division relegation issues gradually cleared. Brentford will join Cambridge and Bristol Rovers in the Second Division thanks to a 4-1 beating at Bristol City, which included a Leroy Rosenior hat-trick, and Birmingham's 1-0 home win over Charlton. Paul Moulden, one of six players bought when exotic publisher David Sullivan acquired Brum, scored the vital goal.
Meanwhile Shrewsbury blew their chances of a play-off place, losing 3-2 at home to demotion- threatened Northampton. The Cobblers survived thanks to two- goal substitute Pat Gavin who scored the winner seven minutes from time when a clearance from Shrews' goalkeeper Paul Edwards hit him and rebounded in. 'My match winning goal was a bit lucky perhaps,' Gavin said, 'but I couldn't give a monkey's'
Last season's champions Leeds and Gillingham have little in common but both managed to get through the season without an away league win. United drew recovering from 3-1 down at Coventry thanks to a Rod Wallace hat- trick. The Gills lost 2-1 at Torquay.
In Scotland, Falkirk, beaten 2-1 at Motherwell, and Airdrie, who drew 1-1 at Hearts, lost their Premier status while Meadowbank drop back into the Second Division.
SUNDAY 16 MAY: Semi-finals first leg: Div 1: 6th v Portsmouth; 5th v 4th. Div 2: Stockport v Port Vale; Swansea v West Brom. Div 3: Bury v York; Crewe v Walsall.
WEDNESDAY 19 MAY: Second leg: Div 1: Portsmouth v 6th; 4th v 5th. Div 2: Port Vale v Stockport; West Brom v Swansea. Div 3: York v Bury; Walsall v Crewe. (Div 1 placings decided by today's Newcastle v Leicester match.)
Div 1 final: Monday 31 May; Div 2 final: Sunday May 30; Div 3 final: Saturday May 29. All finals at Wembley, 2.30pm kick-off.