diff --git a/src/p_mobj.c b/src/p_mobj.c
index 10220fff6df1b31d72b1d0b5959a62f4f20a095b..3bb7ac58d8e823b3c0f7f5a3e8ebf7bc9674ae67 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -2549,6 +2549,10 @@ boolean P_ZMovement(mobj_t *mo)
 		}
 
 		P_CheckPosition(mo, mo->x, mo->y); // Sets mo->standingslope correctly
+
+		if (P_MobjWasRemoved(mobj)) // mobjs can be removed by P_CheckPosition -- Monster Iestyn 31/07/21
+			return false;
+
 		if (((mo->eflags & MFE_VERTICALFLIP) ? tmceilingslope : tmfloorslope) && (mo->type != MT_STEAM))
 		{
 			mo->standingslope = (mo->eflags & MFE_VERTICALFLIP) ? tmceilingslope : tmfloorslope;