diff --git a/src/p_user.c b/src/p_user.c
index 56ad842329023c94a51181872661af1f3e159a22..fc9d6d5a9f8eb15b423e784d7ff02443612b8d75 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -4335,6 +4335,9 @@ static void P_2dMovement(player_t *player)
 	angle_t movepushangle = 0;
 	fixed_t normalspd = FixedMul(player->normalspeed, player->mo->scale);
 
+	if ((gametic % NEWTICRATERATIO) != 0)
+		return;
+
 	cmd = &player->cmd;
 
 	if (player->exiting || player->pflags & PF_STASIS)
@@ -4521,6 +4524,9 @@ static void P_3dMovement(player_t *player)
 	totalthrust.z = FRACUNIT*P_MobjFlip(player->mo)/3; // A bit of extra push-back on slopes
 #endif // ESLOPE
 
+	if ((gametic % NEWTICRATERATIO) != 0)
+		return;
+
 	// Get the old momentum; this will be needed at the end of the function! -SH
 	oldMagnitude = R_PointToDist2(player->mo->momx - player->cmomx, player->mo->momy - player->cmomy, 0, 0);