diff --git a/src/r_main.cpp b/src/r_main.cpp
index 47d2d7ded4c81b6efe7b2d0a7cbca1f46a6fbf08..b62a245dfc63f996109eeb04c6a453e6688e6f17 100644
--- a/src/r_main.cpp
+++ b/src/r_main.cpp
@@ -1430,7 +1430,13 @@ boolean R_ViewpointHasChasecam(player_t *player)
 
 boolean R_IsViewpointThirdPerson(player_t *player, boolean skybox)
 {
-	boolean chasecam = R_ViewpointHasChasecam(player);
+	boolean chasecam = false;
+
+	// Prevent game crash if player is ever invalid.
+	if (!player)
+		return false;
+		
+	chasecam = R_ViewpointHasChasecam(player);
 
 	// cut-away view stuff
 	if (player->awayview.tics || skybox)