diff --git a/src/p_map.c b/src/p_map.c
index 88045a3e18d31f54cfb5dd5dda72aacb7d0ebd6a..41d61cb057aefac8a0d9102cba918d5ed784c705 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -188,7 +188,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
 			P_InstaThrustEvenIn2D(object, spring->angle, FixedMul(horizspeed,FixedSqrt(FixedMul(hscale, spring->scale))));
 		else
 		{
-			fixed_t finalSpeed = horizspeed;
+			fixed_t finalSpeed = FixedDiv(horizspeed, hscale);
 			fixed_t pSpeed = object->player->speed;
 
 			if (pSpeed > finalSpeed)