diff --git a/src/g_game.c b/src/g_game.c
index e1380e3a728dfadb37b2283615dcb7745298aeba..abefac161fefce2f13d28fbc255f2b3500bd275e 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -2809,6 +2809,13 @@ void G_MovePlayerToSpawnOrStarpost(INT32 playernum)
 		P_MovePlayerToStarpost(playernum);
 	else
 		P_MovePlayerToSpawn(playernum, G_FindMapStart(playernum));
+	
+	R_ResetMobjInterpolationState(players[playernum].mo);
+	
+	if (playernum == consoleplayer)
+		P_ResetCamera(&players[playernum], &camera);
+	else if (playernum == secondarydisplayplayer)
+		P_ResetCamera(&players[playernum], &camera2);
 }
 
 mapthing_t *G_FindCTFStart(INT32 playernum)