diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 7f6f6e59974ae3a805f380d93f0c24136fce642c..999f4a9f20582583931260070781fc006221fc97 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -716,6 +716,9 @@ void LLAgent::moveYaw(F32 mag, bool reset_view)
     U32 mask = AGENT_CONTROL_YAW_POS | AGENT_CONTROL_YAW_NEG;
     if ((getControlFlags() & mask) == mask)
     {
+        // Rotation into both directions should cancel out
+        // But keep sending controls to simulator,
+        // it's needed for script based controls
         gAgentCamera.setYawKey(0);
     }
 
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index be80d0bc0a4dbb252df207e88bce941fdf7ba531..5f82f1c44ff2db28967d4bf0232239dea2505f60 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3334,13 +3334,6 @@ void send_agent_update(BOOL force_send, BOOL send_reliable)
 	// trigger a control event.
 	U32 control_flags = gAgent.getControlFlags();
 
-    // Rotation into both directions should cancel out
-    U32 mask = AGENT_CONTROL_YAW_POS | AGENT_CONTROL_YAW_NEG;
-    if ((control_flags & mask) == mask)
-    {
-        control_flags &= ~mask;
-    }
-
 	MASK	key_mask = gKeyboard->currentMask(TRUE);
 
 	if (key_mask & MASK_ALT || key_mask & MASK_CONTROL)