diff --git a/src/p_enemy.c b/src/p_enemy.c
index 9aecd9a276c2b79e390846a7d96b1a8d53ab7d2c..9942862e91bb5b3b2fd8c65203af65493bc0e5ef 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -4059,14 +4059,12 @@ bossjustdie:
 			mo->flags &= ~(MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIPHEIGHT);
 
 			S_StartSound(NULL, sfx_bedie2);
+			P_SpawnMobjFromMobj(mo, 0, 0, 0, MT_CYBRAKDEMON_VILE_EXPLOSION);
+			mo->z += P_MobjFlip(mo);
+			P_SetObjectMomZ(mo, 12*FRACUNIT, false);
+			S_StartSound(mo, sfx_bgxpld);
 			if (mo->spawnpoint && !(mo->spawnpoint->options & MTF_EXTRA))
-			{
-				P_SpawnMobjFromMobj(mo, 0, 0, 0, MT_CYBRAKDEMON_VILE_EXPLOSION);
-				mo->z += P_MobjFlip(mo);
-				P_SetObjectMomZ(mo, 12*FRACUNIT, false);
 				P_InstaThrust(mo, R_PointToAngle2(0, 0, mo->x, mo->y), 14*FRACUNIT);
-				S_StartSound(mo, sfx_bgxpld);
-			}
 			break;
 		}
 		case MT_KOOPA:
diff --git a/src/p_mobj.c b/src/p_mobj.c
index 5ab11ba2c8441ea7e193f40d8ac6d19232174c9c..2bd3950a9709f14c8e5d5c933d05cd55e6a969db 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -8200,13 +8200,13 @@ void P_MobjThinker(mobj_t *mobj)
 				var2 = 0;
 				A_BossScream(mobj);
 			}
+			if (P_CheckDeathPitCollide(mobj))
+			{
+				P_RemoveMobj(mobj);
+				return;
+			}
 			if (mobj->momz && mobj->z+mobj->momz <= mobj->floorz)
 			{
-				if (P_CheckDeathPitCollide(mobj))
-				{
-					P_RemoveMobj(mobj);
-					return;
-				}
 				S_StartSound(mobj, sfx_befall);
 				if (mobj->state != states+S_CYBRAKDEMON_DIE8)
 					P_SetMobjState(mobj, S_CYBRAKDEMON_DIE8);