diff --git a/src/netcode/d_clisrv.c b/src/netcode/d_clisrv.c
index 251ca1873ba964001258a21406cd849e8267d7f8..2ea87c59f19ebc2359abfc2b9c959451c541f02e 100644
--- a/src/netcode/d_clisrv.c
+++ b/src/netcode/d_clisrv.c
@@ -1363,7 +1363,7 @@ static void IdleUpdate(void)
 
 	for (i = 1; i < MAXPLAYERS; i++)
 	{
-		if (cv_idletime.value && playeringame[i] && playernode[i] != UINT8_MAX && !players[i].quittime && !players[i].spectator && !players[i].bot && !IsPlayerAdmin(i) && i != serverplayer)
+		if (cv_idletime.value && playeringame[i] && playernode[i] != UINT8_MAX && !players[i].quittime && !players[i].spectator && !players[i].bot && !(players[i].pflags & PF_FINISHED) && !IsPlayerAdmin(i) && i != serverplayer)
 		{
 			if (players[i].cmd.forwardmove || players[i].cmd.sidemove || players[i].cmd.buttons)
 				players[i].lastinputtime = 0;