                 currentCursorXOffset = 0;
                 currentCursorYOffset = 0;
 
-				if (dispatchEvent(new Event("removeMouseMoveListener", false, true)))
+                var e4:Event;
+                if (hasEventListener("removeMouseMoveListener"))
+                    e4 = new Event("removeMouseMoveListener", false, true)
+				if (!e4 || dispatchEvent(e4))
                 {
                		systemManager.stage.removeEventListener(MouseEvent.MOUSE_MOVE,
                                           mouseMoveHandler,true);
                 }
 
-				if (dispatchEvent(new Event("removeMouseOutListener", false, true)))
+                var e5:Event;
+                if (hasEventListener("removeMouseMoveListener"))
+                    e5 = new Event("removeMouseOutListener", false, true)
+				if (!e5 || dispatchEvent(e5))
                 {
                		systemManager.stage.removeEventListener(MouseEvent.MOUSE_OUT,
                                           mouseOutHandler,true);

    {
        _currentCursorID = value;

		dispatchEvent(new Event("currentCursorID"));
    }

    //----------------------------------

     */
    public function registerToUseBusyCursor(source:Object):void
    {
        if (hasEventListener("registerToUseBusyCursor"))
    		if (!dispatchEvent(new Request("registerToUseBusyCursor", false, true, source)))
	    		return;

        if (source && source is EventDispatcher) 
        {
