Tired Wimbledon champion Roger Federer beat unseeded Czech Radek Stepanek 6-1, 5-7, 6-4 in his second match on Friday to reach the semi-finals of the Swiss Open.
The world number one beat big-serving Croatian Ivo Karlovic 6-7, 6-3, 7-6 in a rain-delayed second round clash in the morning before taking on Stepanek in the afternoon.
In both matches, Federer mixed some sublime all-court tennis with unforced errors as his hangover from Wimbledon fortnight took its toll.
"Maybe I needed the practice," said Federer, who lifted his second successive Wimbledon title last Sunday when he beat American Andy Roddick in the final.
"I did not practice at all for the last two days and now I have played six sets in one day. That has done me some good, but I am tired."
Stepanek also played twice on Friday, beating veteran Swiss favourite Marc Rosset 4-6, 7-5, 6-3.
"He gave me a hard time and I felt very tired," said Federer, who broke Stepanek's serve twice to cruise through the first set of their quarter-final.
"In the second, my legs were tired, I was down and I just couldn't push myself like I had.
"I was serving into the tape and not over it and he had confidence and for five or 10 minutes the whole match changed and I just had to start from zero again. I felt that if I could serve better, it would all be all right," the Swiss added.
After dropping his serve twice to lose the second set, Federer stormed back in the third, making the most of a break in the opening game.
"I feel exhausted now," he said. "Very tired. Six sets in one day is a lot -- I just hope I can recover."
Federer, 22, will meet Italian qualifier Potito Starace in Saturday's semi-finals.
Starace, who will be 23 on Wednesday, beat defending champion and fourth seeded Czech Jiri Novak 6-4, 6-3 in the opening quarter-final.
His progress follows a strong showing at the French Open where he reached the third round after beating Frenchman Sebastien Grosjean.
In the other semi-final, unseeded Russian Igor Andreev plays third-seeded German Rainer Schuettler, who beat Spain's Felix Mantilla 6-1, 4-6, 6-2.
Andreev beat unseeded Spaniard Ruben Ramirez Hidalgo 6-3, 6-4.