diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp
index 238b2dc66ae6cadc05e5c6189aa38b04d51155bf..829731d1106a695aae1bb7a7e9630922762902b9 100644
--- a/indra/newview/lljoystickbutton.cpp
+++ b/indra/newview/lljoystickbutton.cpp
@@ -446,7 +446,6 @@ void LLJoystickCameraRotate::updateSlop()
 
 BOOL LLJoystickCameraRotate::handleMouseDown(S32 x, S32 y, MASK mask)
 {
-	gAgent.setMovementLocked(TRUE);
 	updateSlop();
 
 	// Set initial offset based on initial click location
@@ -494,7 +493,12 @@ BOOL LLJoystickCameraRotate::handleMouseDown(S32 x, S32 y, MASK mask)
 		mInitialQuadrant = JQ_RIGHT;
 	}
 
-	return LLJoystick::handleMouseDown(x, y, mask);
+	BOOL res = LLJoystick::handleMouseDown(x, y, mask);
+	if (res != FALSE)
+	{
+		gAgent.setMovementLocked(TRUE);
+	}
+	return res;
 }
 
 BOOL LLJoystickCameraRotate::handleMouseUp(S32 x, S32 y, MASK mask)