diff --git a/src/p_user.c b/src/p_user.c
index 7cd128cf080792f64df4a56ca4aeb4e9076e6b94..b3b82d5e7db44d1d2f9248e04a860f68561ca55e 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -11971,7 +11971,9 @@ void P_PlayerThink(player_t *player)
 	{
 		if (P_SpectatorJoinGame(player))
 		{
+			player->spectator = true;
 			LUA_HookPlayer(player, HOOK(PlayerThink));
+			player->spectator = false;
 			return; // player->mo was removed.
 		}
 	}