diff --git a/src/g_game.c b/src/g_game.c
index c3f4be3cdd9ae87429a5a85d74471fab2c61bd0e..c85a291fef9aebc2d5d8ccc15afd89e101ca4674 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -1564,6 +1564,8 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
 				camadjustfactor = cv_cam_turnfacing[forplayer].value/8;
 			}
 
+			camadjustfactor = FixedMul(camadjustfactor, max(FRACUNIT - player->speed, min(player->speed/18, FRACUNIT)));
+
 			camadjustfactor = FixedMul(camadjustfactor, tta_factor[forplayer]);
 
 			if (tta_factor[forplayer] < FRACUNIT && (cmd->forwardmove || cmd->sidemove || tta_factor[forplayer] >= FRACUNIT/3))