 			
 			_update = true;
 		}
-		
+
 		private function mouseMoveHandler(event : MouseEvent) : void
 		{
 			if (event.buttonDown)
 			{
-				_rotation.y += -(_mousePosition.x - event.stageX) * .005;
-				_rotation.x += (_mousePosition.y - event.stageY) * .005;
+				if (_stage && _stage.mouseLock)
+				{
+					_rotation.y += event.movementX * .005;
+					_rotation.x += -event.movementY * .005;
+				}
+				else
+				{
+					_rotation.y += -(_mousePosition.x - event.stageX) * .005;
+					_rotation.x += (_mousePosition.y - event.stageY) * .005;
+				}
 				
 				_update = true;
 			}

			_step = value;
		}
				
		public function FirstPersonCameraController()
		{
			super ();
		}

		public function bindDefaultControls(dispatcher : IEventDispatcher) : FirstPersonCameraController

	import aerys.minko.type.math.Vector4;
	
	import flash.display.BitmapData;
	import flash.display.Stage;
	import flash.events.IEventDispatcher;
	import flash.events.MouseEvent;
	import flash.geom.Point;
