The main rail route south from Inverness was cut off yesterday after the derailment of a freight train at 1.40am just outside Inverness.
Tree branches on the line at Culloden Viaduct forced the overnight freight service off the tracks.
As a result, all services between Inverness and Perth were hit by delays, cancellations or alterations with no trains able to depart or enter the Highland capital and disruption expected to last until the end of the day.
>> Keep up to date with the latest news with The P&J newsletter
Specialist engineers and lifting equipment were sent to the site and though they eventually got the train back on the tracks disruption was expected to continue well into the evening. To compound the problems, Storm Ali’s effects further south meant a “do not travel” warning was put on many of the country’s routes.
A Network Rail spokesperson said: “A freight train travelling north derailed in the early hours of Wednesday morning after striking tree branches on the line near Culloden.
“Specialist engineers and lifting equipment are on their way to the site and we will re-rail the engine and reopen the line as soon as possible.”
There was hope of restoring some services up to around 2pm with north and south bound services terminating at either Aviemore or Perth.
Thereafter bus services were arranged to allow as many passengers as possible to bypass the derailment but Scotrail advised that places were limited.
The train operator also encouraged travellers to try to complete their journey via Aberdeen.
That move led to further troubles due a signalling failure at Dyce with services between Aberdeen and Inverurie being cancelled, delayed or revised.
ScotRail staff was forced to put on bus replacement services for passengers trying to travel during rush hour and the fault was fixed shortly after 9am.
As they day continued there were more and more cancellations with almost no trains running to the Highlands or north east after 2pm.
All services to and from Inverness were cancelled after 2.30pm with one train attempting to go south late by nearly two hours and halted between Blair Athol and Newtonmore.
There are approximately 11 rail services per day between the Highlands and the central belt – a capacity of 4,200 seats. These comprise three trains per day between Inverness and Glasgow, six trains per day between Inverness and Edinburgh, one train per day between Inverness and London Kings Cross and one overnight sleeper service between Inverness and London Euston.