Bauke Mollema won a weather-shortened second stage of the Tour de Suisse while Cameron Meyer held on to yellow despite a late charge from Ryder Hesjedal.

Heavy snow forced organisers to cut the planned 159.2km route back to 117.2km, dropping the opening climb over the Nufenenpass and forcing the convoy to catch the train to a new starting point in Ulrichen.

Once the race was under way, a quartet formed of Enrique Sanz, Christophe Riblon, Adrian Saez and Johannes Frohlinger broke clear but could not build up a significant advantage on the shortened stage and they would be caught before the start of the final climb.

Several riders tried to make a move as they began the ascent.

Ireland's Dan Martin from Garmin-Sharp was the first to break clear before team-mate Hesjedal, Astana's Tanel Kangert and Sojasun's Brice Feillu first drew level and then pulled clear of him.

Feillu dropped back and then Kangert followed as Hesjedal kicked away with five kilometres left. His lead was at 16 seconds as he moved into the final kilometre but the attacks were coming as Johann Tschopp of IAM Cycling cleared him before Blanco's Mollema followed.

The Dutchman then broke clear for the win ahead of BMC's Mathias Frank.

Although Hesjedal's bid for victory fell short, he did successfully cut Meyer's overall lead to just three seconds, with Frank five seconds back.

Martin finished the stage in sixth place, 11 seconds behind the stage winner Mollema. Martin is now 12th in the GC, 42 seconds behind leader Meyer.

Nicolas Roche, cousin of Martin, is 25th overall, 1:02 behind the leader after finishing 27th in the stage.