diff --git a/src/g_game.c b/src/g_game.c
index fb1c0d522b5a3bc02085af81276be61c913935e8..8eb731b1ff3675c523b46cc203fc2d55086ada27 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -2363,7 +2363,11 @@ void G_Ticker(boolean run)
 			F_TextPromptTicker();
 			AM_Ticker();
 			HU_Ticker();
-			R_UpdateViewInterpolation();
+			if (run)
+			{
+				R_UpdateViewInterpolation();
+			}
+			
 
 			break;
 
@@ -2420,7 +2424,10 @@ void G_Ticker(boolean run)
 			if (titlemapinaction)
 			{
 				P_Ticker(run);
-				R_UpdateViewInterpolation();
+				if (run)
+				{
+					R_UpdateViewInterpolation();
+				}
 				// then intentionally fall through
 			}
 			/* FALLTHRU */
diff --git a/src/r_fps.c b/src/r_fps.c
index f9f1d60c0ba97e4ffd33355ea79160e0dbda4d56..5ab53134666d032e553f6fb8820a1322a8649d79 100644
--- a/src/r_fps.c
+++ b/src/r_fps.c
@@ -34,7 +34,7 @@ static viewvars_t sky2view_old;
 static viewvars_t sky2view_new;
 
 static viewvars_t *oldview = &p1view_old;
-static BOOL oldview_valid = FALSE;
+static boolean oldview_valid = false;
 viewvars_t *newview = &p1view_new;
 
 
@@ -95,7 +95,7 @@ void R_InterpolateView(fixed_t frac)
 	if (frac > FRACUNIT)
 		frac = FRACUNIT;
 
-	if (oldview_valid == FALSE)
+	if (oldview_valid == false)
 	{
 		// interpolate from newview to newview
 		prevview = newview;
@@ -131,12 +131,12 @@ void R_UpdateViewInterpolation(void)
 	p2view_old = p2view_new;
 	sky1view_old = sky1view_new;
 	sky2view_old = sky2view_new;
-	oldview_valid = TRUE;
+	oldview_valid = true;
 }
 
 void R_ResetViewInterpolation(void)
 {
-	oldview_valid = FALSE;
+	oldview_valid = false;
 }
 
 void R_SetViewContext(enum viewcontext_e _viewcontext)