diff --git a/src/p_mobj.c b/src/p_mobj.c
index fb8648013fbecd1527dbdc22d70cd806a7202984..82640abcfcda766353c5b11944540c25c33bb8e0 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -2363,7 +2363,7 @@ static boolean P_ZMovement(mobj_t *mo)
 			mo->z = mo->floorz;
 
 #ifdef ESLOPE
-		if (mo->standingslope) // You're still on the ground; why are we here?
+		if (!(mo->flags & MF_MISSILE) && mo->standingslope) // You're still on the ground; why are we here?
 		{
 			mo->momz = 0;
 			return true;