 			
 			if (_alwaysOnTop)
 			{
-				var origin 	: Point 	= localToGlobal(ZERO2);
-				var gfx		: Graphics	= _mask.graphics;
+				var gfx			: Graphics	= _mask.graphics;
+				var stageWidth	: int		= stage.stageWidth;
+				var stageHeight	: int		= stage.stageHeight;
 				
 				gfx.clear();
 				gfx.beginFill(0);
 				gfx.moveTo(0, 0);
-				gfx.lineTo(stage.stageWidth, 0);
-				gfx.lineTo(stage.stageWidth, stage.stageHeight);
-				gfx.lineTo(0., stage.stageHeight);
+				gfx.lineTo(stageWidth, 0);
+				gfx.lineTo(stageWidth, stageHeight);
+				gfx.lineTo(0., stageHeight);
 				gfx.lineTo(0, 0);
-				gfx.moveTo(origin.x, origin.y);
-				gfx.lineTo(origin.x, origin.y + height);
-				gfx.lineTo(origin.x + width, origin.y + height);
-				gfx.lineTo(origin.x + width, origin.y);
+				gfx.moveTo(_stageX, _stageY);
+				gfx.lineTo(_stageX, _stageY + height);
+				gfx.lineTo(_stageX + width, _stageY + height);
+				gfx.lineTo(_stageX + width, _stageY);
+				gfx.lineTo(_stageX, _stageY);
 				gfx.endFill();
-				
+								
 				for (i = 0; i < numChildren; ++i)
 					stage.getChildAt(i).mask = _mask;
 			}

				var width	: Number	= Math.min(2048, _width);
				var height	: Number	= Math.min(2048, _height);
				
				_stage3d.x = origin.x;
				_stage3d.y = origin.y;
				
				updateMask();
				

		{
			_alwaysOnTop = value;
			updateRectangle();
			updateStageListeners();
		}
		
		/**
