diff --git a/src/p_map.c b/src/p_map.c
index 6beca92f14c2a5614971b21e4925b3c57d1f705e..8b00397caaf4f0ab9a43300787e4779023fb3352 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -2884,7 +2884,7 @@ static boolean P_ThingHeightClip(mobj_t *thing)
 	if (thing->z != oldz)
 	{
 		if (thing->player)
-			P_PlayerHitFloor(thing->player, false);
+			P_PlayerHitFloor(thing->player, !onfloor);
 	}
 
 	// debug: be sure it falls to the floor
diff --git a/src/p_user.c b/src/p_user.c
index 128d4e7d7dc19180a2b887ebe664865bec9d7bd9..c583e076b2753b1124b456384dae796bb016a76f 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -2194,10 +2194,13 @@ boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff)
 
 	if ((clipmomz = !(P_CheckDeathPitCollide(player->mo))) && player->mo->health && !player->spectator)
 	{
-		if (dorollstuff && (player->charability2 == CA2_SPINDASH) && !(player->pflags & PF_THOKKED) && (player->cmd.buttons & BT_USE) && (FixedHypot(player->mo->momx, player->mo->momy) > (5*player->mo->scale)))
-			player->pflags |= PF_SPINNING;
-		else if (!(player->pflags & PF_STARTDASH))
-			player->pflags &= ~PF_SPINNING;
+		if (dorollstuff)
+		{
+			if ((player->charability2 == CA2_SPINDASH) && !(player->pflags & PF_THOKKED) && (player->cmd.buttons & BT_USE) && (FixedHypot(player->mo->momx, player->mo->momy) > (5*player->mo->scale)))
+				player->pflags |= PF_SPINNING;
+			else if (!(player->pflags & PF_STARTDASH))
+				player->pflags &= ~PF_SPINNING;
+		}
 
 		if (player->pflags & PF_SPINNING)
 		{