diff --git a/src/p_user.c b/src/p_user.c
index e4cb01f632883e9eb3ff4a7531334031da447158..285d36ca9dce7b0d6395af39b060cc193f557093 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -8688,8 +8688,11 @@ void P_PlayerThink(player_t *player)
 
 	if (player->bot)
 	{
-		if (player->playerstate == PST_LIVE && B_CheckRespawn(player))
-			player->playerstate = PST_REBORN;
+		if (player->playerstate == PST_LIVE || player->playerstate == PST_DEAD)
+		{
+			if (B_CheckRespawn(player))
+				player->playerstate = PST_REBORN;
+		}
 		if (player->playerstate == PST_REBORN)
 			return;
 	}