diff --git a/src/p_map.c b/src/p_map.c
index 161f5b14ab488509c59eff8dfac99b4697842701..59a2f9b514297da688512f5026cb3fce22cec9e1 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -1561,8 +1561,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
 		}
 	}
 
-	if ((!tmthing->player) && (thing->player))
-		; // no solid thing should ever be able to step up onto a player
+	if ((thing->flags & MF_SPRING || thing->type == MT_STEAM) && (thing->player))
+		; // springs and gas jets should never be able to step up onto a player
 	// z checking at last
 	// Treat noclip things as non-solid!
 	else if ((thing->flags & (MF_SOLID|MF_NOCLIP)) == MF_SOLID