diff --git a/src/p_user.c b/src/p_user.c
index f81f6d956bc51cd5717fddfbb9bbbfebf3bc2519..d70a93584d40c3023ad3abc6c6964c28a484ea91 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -8598,6 +8598,9 @@ static void P_MovePlayer(player_t *player)
 	// Look for Quicksand!
 	if (CheckForQuicksand)
 		P_CheckQuicksand(player);
+
+	if (P_IsObjectOnGround(player->mo))
+		player->mo->pmomz = 0;
 }
 
 static void P_DoZoomTube(player_t *player)
@@ -12385,9 +12388,6 @@ void P_PlayerAfterThink(player_t *player)
 		player->mo->flags |= MF_NOGRAVITY;
 	}
 
-	if (P_IsObjectOnGround(player->mo))
-		player->mo->pmomz = 0;
-
 	if (player->followmobj && (player->spectator || player->mo->health <= 0 || player->followmobj->type != player->followitem))
 	{
 		P_RemoveMobj(player->followmobj);