Team Sky's Chris Froome finished second in the penultimate stage of the Tour de Romandie to extend his overall lead.
Slovenia's Simon Spilak won the stage in 5:10:00 to move up to second, while Froome, who finished just behind on the same time, now holds a 47-second lead.
The final stage is an 18km time-trial on Sunday and Froome is well placed to win his first Romandie title.
He is aiming to emulate Team Sky colleague Bradley Wiggins, who won last year's race.
Briton Froome coped with treacherous conditions, as the riders battled against rain and snow in the Swiss mountains, to close in on the title.
The weather forced race organisers to cut a scheduled second climb of Col de la Croix from the stage, which reduced the route by 4km and created an uphill route to the finish.
Team Sky committed numbers to the front of the peloton to protect Froome's six-second advantage after stage three, before managing to string out the bunch on the final climb.
"It was quite a straightforward stage for me just following my team-mates," said Froome on Team Sky's official website. "They did all the work and I was able to stay on their wheel all day.
"I definitely felt the pressure on the last climb but I would hope everyone felt the pressure."
Froome finished one minute and three seconds ahead of a chasing group containing RadioShack-Leopard rider Robert Kiserlovski and Movistar pair Alejandro Valverde and Rui Costa.
Costa sprinted up to third on the stage and moved to third overall, one minute and 21 seconds behind Froome.
Tour de Romandie classification (after stage four):
1. Chris Froome (Britain/Team Sky) 19:03:10"
2. Simon Spilak (Slovenia/Katusha) +47"
3. Rui Costa (Portugal/Movistar) +1:21"
4. Robert Kiserlovski (Croatia/RadioShack) +1:22"
5. Thibaut Pinot (France/FDJ) +1:26"
6. Alejandro Valverde (Spain/Movistar)
7. Tom Danielson (US/Garmin)
8. Wilco Kelderman (Netherlands/Blanco) +1:27"
9. Carlos Betancur (Colombia/AG2R) +1:28"
10. Marcel Wyss (Switzerland/IAM Cycling) +1:43"