New trains for the Crossrail scheme are to be fully funded by the taxpayer so that the £14.8 billion project can start on time.
Initial plans for the £1 billion Crossrail rolling stock procurement involved £350 million from the public purse, with the rest of the money coming from the private sector.
But with private companies having trouble raising funds quickly enough, Transport for London was concerned Crossrail would be ready to open in late 2018 but there would be no trains.
TfL said the new plan ensured a deal would be in place next year, with delivery and testing starting in 2017.
The 100% taxpayer funding arrangement was welcomed by rail unions RMT and TSSA.
RMT leader Bob Crow said:
"This is a hugely important development and a recognition that TfL and the Department for Transport do not want to repeat the fiasco of the Thameslink/Siemens deal that nearly killed train building in the UK and which remains log-jammed nearly two years on."
"The Crossrail fleet should now be built through public procurement at Bombardier in Derby, saving skilled manufacturing jobs and UK train building and delivering the rolling stock on time without the madness that has dogged Thameslink from day one."
TSSA leader Manuel Cortes said:
"We welcome the fact that Tory ministers recognise that it is cheaper and quicker to have publicly-funded new trains for Crossrail, but why stop there?
"Why don't we just get rid of the privately-run Roscos (rolling stock leasing companies) and build cheaper trains in Britain for the whole network, not just those operated by the mayor of London? By replacing the privateers, we could then start cutting fares."
More top news
A number of flood alerts are in place for the tidal stretch of the River Thames after it burst its banks yesterday.
Teaching assistant Kevin Wilson who brutally attacked his heavily pregnant ex-girlfriend killing his unborn son, has been jailed for life.
The soldier who tripped up a suspected drug dealer running from police has been revealed, as he admitted his military training kicked in.