Trains travelling between Perth and Inverness will be cancelled this weekend as a result of heavy rainfall.
The Highland Mainline will be closed on Saturday.
According to the Met Office, the affected areas could receive 80 to 100mm of rainfall, with up to 150mm possible.
A revised timetable will be in place across the rest of Scotland as a result of speed restrictions.
Elsewhere, a yellow weather warning has been issued for Dundee, Angus and the rest of Fife between midnight on Saturday and 6am on Sunday.
In addition, the Scottish Environment Protection Agency (Sepa) has issued flood alerts for Tayside and Fife.
The Met Office has also warned that homes and businesses may face flooding and spray could lead to difficult driving conditions.
Sepa has warned people in Perthshire to expect a “major rainfall event”.