
Scrap the education white paper Stop all the academies and defend comprehensive education by Ken Muller , assistant secretary Islington NUT ( pc ) Far more is at stake for the future of education than the fate of the hapless Ruth Kelly . New Labour 's White Paper on schools signals a thoroughgoing assault on the principle of comprehensive education . The planned education bill based on it would lead to all schools being encouraged to break from local democratic control and turn themselves into semi-independent trusts . Such is the scale of the mounting opposition that the government now appears to fear that it will be able to get the bill through parliament only by relying on Tory votes . Senior New Labour figures said this week that Tony Blair is looking to delay publishing the bill , which was due next month , until he has been able to buy off backbench opposition . Labour backbenchers have already produced an " alternative White Paper " . But leading rebels have also said they are prepared to compromise . The city academy programme , which takes schools completely out of public control and hands them over to businessmen , is already law . New Labour 's weakness and the rising opposition of parents mean the programme could be derailed . But that will not come by relying on MPs who voted for academies before . A possible compromise being floated over the new bill is that groups of schools could become a trust , rather than individual ones . But what 's so great about a cluster of schools in competition with another group for scarce resources ? Teacher union activists in London have called a protest march over the education proposals for 2 March . Other initiatives are taking place elsewhere across the country . © Copyright Socialist Worker ( unless otherwise stated ) . You may republish if you include an active link to the original and leave this notice in place . 