Roger Federer continued to look the man to beat at Indian Wells as he raced past Kevin Anderson in straight sets.
The 32-year-old's 7-5 6-1 quarter-final victory was his 10th in a row as he made short work of the man who had dumped out his doubles partner and Australian Open champion Stanislas Wawrinka on Wednesday.
Federer won seven games in a row from 5-5 in the opening set, and he said: "It was a really good match for me."
It has been a complete turnaround for the Swiss after his struggles last season, and he admitted the speed of the transformation has even taken him by surprise.
He said: "There is a sense of calmness to my game right now. Also confidence. But also that grit and wanting to win badly feeling is out there, which was hard to find at times last year.
"So now I've got it all. That results came as quickly as they did, maybe that did surprise me a little bit."
Federer will face Alexandr Dolgopolov, the world number 31 who stunned defending champion Rafael Nadal in the third round, in the semi-final after the Ukrainian produced an accomplished display to reach the last four of a Masters 1000 tournament for the first time.
Dolgopolov has been in inspired form in the Californian desert and he continued his fine run by defeating Andy Murray's conqueror Milos Raonic 6-3 6-4.
Dolgopolov made a fast start against the big Canadian, holding on to an early break to win the opening set.
Tenth seed Raonic won the first three games of the second set but Dolgopolov responded with a run of five in row to clinch a comfortable victory.
Dolgopolov said: "With my game I always believed I can beat anyone on a good day because I hit flat, I have the shots. I wasn't consistent enough, that's true. But I knew if I can get that consistency that I can trouble anyone."
Follow the denouement of the Indian Wells Masters this weekend on Sky Sports HD3 from 20.30 on Friday