diff --git a/src/g_game.c b/src/g_game.c
index a118ec09de37b4b050862f0716c8830b96e918f5..522777ee5f3aa9a4fcf046c6399e3722930d6eae 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -1081,7 +1081,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
 	abilitydirection = cv_abilitydirection[forplayer].value;
 
 	strafeisturn = abilitydirection && ticcmd_centerviewdown[forplayer] &&
-		(cv_cam_lockedinput[forplayer].value || (player->pflags & PF_STARTDASH)) &&
+		((cv_cam_lockedinput[forplayer].value && !ticcmd_ztargetfocus[forplayer]) || (player->pflags & PF_STARTDASH)) &&
 		!player->climbing && player->powers[pw_carry] != CR_MINECART;
 
 	// why build a ticcmd if we're paused?