diff --git a/src/k_respawn.c b/src/k_respawn.c index 3fd1283ca..cf8b92965 100644 --- a/src/k_respawn.c +++ b/src/k_respawn.c @@ -178,8 +178,10 @@ void K_DoIngameRespawn(player_t *player) { if (player->respawn.fromRingShooter == true) { + waypoint_t *finishline = K_GetFinishLineWaypoint(); waypoint_t *prevWP = player->respawn.wp; - while (prevWP->numprevwaypoints > 0) + // Laps don't decrement while respawning, so don't cross behind the finish line + while (prevWP->numprevwaypoints > 0 && prevWP != finishline) { prevWP = prevWP->prevwaypoints[0]; if (K_GetWaypointIsSpawnpoint(prevWP) == true)