Dubai - Grand Slam record-holder Roger Federer stayed on course for a Saturday showdown with top-seeded Novak Djokovic after winning a quarter-final repeat of the 2004 Dubai Open final against Feliciano Lopez.
However, Federer needed a tight mind and some outstanding serving to win 7-5, 6-3 against the fluently aggressive Spaniard who is at a career-high world No15 and enjoyed the fast conditions here on Wednesday.
Lopez often attacked the net threateningly, created difficult angles with his left-handed game, and forced his legendary opponent to play somewhere near his best.
"I just tried to focus on my own serve," said Federer, who lost only nine points behind his delivery all match.
"And then in the end you get a bit of a read on his serve.
"But it almost went to a tie-break in the first set. I've played him since we were about 14 years old and I know he can be very dangerous."
The most notable moments were a 20-point tenth game in which Lopez saved three set points but which may have softened him up for Federer's breakthrough two games later, and a sensational rally in the final game.
This saw Lopez twice force Federer back from the net with stomach-stretching lobs, and, after attacking forays by both from baseline and forecourt, the crowd were cheering on their feet.
Federer squeezed out that memorable point, and three rallies later closed out the match with a sharp serve-volley. He now has another repeat final, against Mikhail Youzhny, whom he beat in the 2007 showdown.
Youzhny progressed with a 6-2, 7-6 (7/0) win over against Mardy Fish, the sixth-seeded American making his first visit to the Middle East tournament.
If Federer does beat the Russian again he may have a repeat of last year's Wimbledon quarter-final with Jo-Wilfried Tsonga, the Frenchman who became the first player to come from two sets down in a Grand Slam to beat Federer.
The fourth-seeded Tsonga also advanced, overcoming Lukas Rosol, the world No 96 from the Czech republic, by 6-3, 6-4 and earning a quarter-final with Juan Martin Del Potro, the 2009 US Open champion from Argentina.
Earlier, triple Grand Slam titleholder Djokovic had to fight hard to get within one win of a possible semi-final rematch with Andy Murray, the three-time Grand Slam finalist from Scotland.
The two had a classic five-hour semi-final at last month's Australian Open.
Djokovic beat Sergei Stakhovsky, the dangerously hard-hitting world No 74 from Ukraine, by 7-6 (7/5), 6-3, but the top seed was break point down in the eighth game of the first set and a break of serve down early in the second set.
He served well, which got him out of trouble in the first set, and enabled him to close the match out without inhibition, finishing with an ace.
"It was very close," Djokovic said. "I was fortunate I got breaks when I needed them. With more matches I will get more rhythm."
If so, the man who will next bear the brunt is his friend and fellow Serbian, Janko Tipsarevic.
Meanwhile, Murray's bid to push on from his tremendous Australian performance carried him to a solid win over Marco Chiudinelli, the third best Swiss player, by 6-3, 6-4.
"I played well throughout today," the third seed said. "So that's progress. Now I just need to keep that going."
He served better and moving more easily than the previous day against Michael Berrer, when he complained of feeling unwell, and had to recover from 3-4 down in the final set.
Murray was also in better humour. A boxing fan, he was asked what he thought of the rumpus at the Dereck Chisora and David Haye press conference. "Yeah, I saw that this morning when I got up. It was not great, was it?" he said.
"But, yeah, I guess you can't really be acting like that. I don't really want say too much more, or one of them will come and find me."
Results in the ATP Dubai Open on Wednesday (x denotes seeding):
Andy Murray (GBR x3) bt Marco Chiudinelli (SUI) 6-3, 6-4
Janko Tipsarevic (SRB x7) bt Flavio Cipolla (ITA) 6-7 (2/7), 6-1, 6-1
Novak Djokovic (SRB x1) bt Sergiy Stakhovsky (UKR) 7-6 (7/5), 6-3
Tomas Berdych (CZE x5) bt Lukas Lacko (SVK) 6-1, 6-2
Mikhail Youzhny (RUS) bt Mardy Fish (USA x6) 6-2, 7-6 (7/0)
Juan Martn Del Potro (ARG x8) bt Andrey Golubev (KAZ) 6-4, 6-2
Roger Federer (SUI x2) bt Feliciano Lopez (ESP) 7-5, 6-3
Jo-Wilfried Tsonga (FRA x4) bt Lukas Rosol (CZE) 6-3, 6-4.