People across the Highlands were on storm alert last night amid warnings of gales, snow and ice.
The Met Office issued a yellow “be aware” warning for today and tomorrow.
Thunderstorms and blizzards are also predicted and travel disruption is likely.
The weather had already started affecting ferry services yesterday.
Met Office forecaster Gordon McKinstry said: “There are going to be some pretty bad conditions over the Western Isles and western Highlands through Monday into Tuesday with frequent squalls, showers, rain, sleet, hail, thunderstorms and snow.
“There could be snow anywhere at 650ft on high level routes. It will be heavy on the A9 between Inverness and Aviemore.
“Moray, Skye, Wester Ross and North Argyll will bear the real brunt of strong winds and heavy snow showers.
“Maximum temperature on Monday will be 6C, starting off nearer freezing.
“There are more snow showers to come on Tuesday, particularly at Aviemore, Inverness, the north-west Highlands, Ullapool and Western Isles and a few feeding into Moray.
“Anyone travelling in southern parts of Moray should be aware of the potential for road closures.
“There could be some pretty nasty, potentially blizzard, conditions on the highest roads.”
A number of ferries were cancelled yesterday, including the services to Barra, Eriskay, Gigha, Harris and Skye.
There was disruption on several other routes, including Ardnamurchan, Barra and South Uist, Coll, Tiree, Iona, Islay, Lismore, Mull, North Uist, Raasay, and the Small Isles.
A spokesman for CalMac Ferries apologised for any inconvenience and warned that there may be further problems today.
Glenshee Ski Centre was unable to open yesterday after snow closed the A93 Braemar-Glenshee road.
Despite heavy snow, high winds also made ski-ing impossible at Cairngorm, Nevis Range and Glencoe.
The Lecht was able to open and welcomed about 1,000 visitors.
Cashier Pat Mathieson said: “It was snowing heavily and now conditions are much improved. We have new snow and a firm base.”
Conditions are expected to be calmer on Wednesday, before a return to cold and wintry weather on Thursday and Friday.