diff --git a/src/p_mobj.c b/src/p_mobj.c
index fb9e7d78ef7174bde7bb71901a7da9f034b6eb35..3059d45f533c51b1b529791016e0d3be6a2f3c10 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -3100,6 +3100,9 @@ void P_MobjCheckWater(mobj_t *mobj)
 	// Reset water state.
 	mobj->eflags &= ~(MFE_UNDERWATER|MFE_TOUCHWATER|MFE_GOOWATER|MFE_TOUCHLAVA);
 
+	if (mobj->momz)
+		height += mobj->momz;
+
 	for (rover = sector->ffloors; rover; rover = rover->next)
 	{
 		fixed_t topheight, bottomheight;