diff --git a/src/g_game.c b/src/g_game.c
index 4775488b70491c5638cbf68a64720dc372d47335..b51cb2ee2bff9f0cc18fcccfe22b02cae1c6dceb 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -2415,10 +2415,6 @@ void G_Ticker(boolean run)
 				ST_Ticker();
 				AM_Ticker();
 				HU_Ticker();
-				if (run)
-				{
-					R_UpdateViewInterpolation();
-				}
 			}
 			break;
 
diff --git a/src/p_setup.c b/src/p_setup.c
index 560c2673449dec444ab961a6c52530f59a4fc092..1bd9a83b4a68574cb4efb0d9e670f261616547b4 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -3383,9 +3383,6 @@ boolean P_SetupLevel(boolean skipprecip)
 
 	G_AddMapToBuffer(gamemap-1);
 
-	R_ResetViewInterpolation(0);
-	R_ResetViewInterpolation(0);
-
 	return true;
 }
 
diff --git a/src/p_tick.c b/src/p_tick.c
index 830ed60bed903331e7eb437c47fba4cb8103a625..d4c00b86133a9c70af94b3cacf8db5f62c59f026 100644
--- a/src/p_tick.c
+++ b/src/p_tick.c
@@ -802,6 +802,7 @@ void P_Ticker(boolean run)
 	if (run)
 	{
 		R_UpdateLevelInterpolators();
+		R_UpdateViewInterpolation();
 	}
 
 	P_MapEnd();
@@ -872,6 +873,8 @@ void P_PreTicker(INT32 frames)
 #endif
 
 		R_UpdateLevelInterpolators();
+		R_UpdateViewInterpolation();
+		R_ResetViewInterpolation();
 
 		P_MapEnd();