 			if (!_logoIsHidden)
 				showLogo();
 			
+			// update Stage3D position if necessary
+			if (_stage3d)
+			{
+				var positionOnStage	: Point	= localToGlobal(ZERO2);
+				
+				if (_stageX != positionOnStage.x || _stageY != positionOnStage.y)
+					updateRectangle();
+			}
+			
+			// handle all visitor
 			if (_visitors && _visitors.length != 0)
-			{
+			{								
 				var time : Number = getTimer();
 		
 				// create the data sources the visitors are going to write and read from during render.

				stage.removeEventListener(MouseEvent.ROLL_OUT, stageMouseHandler);
				stage.removeEventListener(MouseEvent.ROLL_OVER, stageMouseHandler);
			}
		}
		
		private function stageMouseHandler(event : MouseEvent) : void

			
			if (_alwaysOnTop)
			{
				stage.addEventListener(Event.RESIZE, stageResizeHandler);
				stage.addEventListener(MouseEvent.CLICK, stageMouseHandler);
				stage.addEventListener(MouseEvent.DOUBLE_CLICK, stageMouseHandler);
				stage.addEventListener(MouseEvent.MOUSE_DOWN, stageMouseHandler);
