Top men's seed Novak Djokovic dropped a set before fighting off German qualifier Dominik Koepfer to reach the semi-finals of the Italian Open on Saturday.
The world number one needed more than two hours to see of the 97th-ranked German 6-3, 4-6, 6-3 in the final warm-up tournament on clay before the French Open.
Two weeks after his US Open default for accidently hitting a line judge with ball, the Serb again showed signs of frustration, throwing his racket after a lost service game, with shouts of anger resounding in the silence of the empty Central Court of Foro Italico.
Djokovic was broken four times in a match which took more than two hours before advancing to his 15th consecutive semi-final in Rome, where he has won four times.
The 33-year-old next plays Norway's Casper Ruud who earlier battled past Italian fourth seed Matteo Berrettini 4-6, 6-3, 7-6 (7/5).