diff --git a/src/p_mobj.c b/src/p_mobj.c
index a04351ae77035d22bc2f7ac53affba34e937bbe1..3eab29c09599f66cab4c58c97facaf2b2d89bb7f 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -3139,7 +3139,8 @@ boolean P_SceneryZMovement(mobj_t *mo)
 
 	if (P_CheckDeathPitCollide(mo))
 	{
-		P_RemoveMobj(mo);
+		if (mo->type != MT_GHOST)  // ghosts play death animations instead, so don't remove them
+			P_RemoveMobj(mo);
 		return false;
 	}