                 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);

     */
    public function setBusyCursor():void 
    {
		if (!dispatchEvent(new Event("setBusyCursor", false, true)))
			return;

        var cursorManagerStyleDeclaration:CSSStyleDeclaration =
            StyleManager.getStyleDeclaration("mx.managers.CursorManager");

                                     xOffset:Number = 0,
                                     yOffset:Number = 0):int 
    {
        if (hasEventListener("setCursor"))
        {
		    var event:Request = new Request("setCursor", false, true);
		    event.value = [ cursorClass, priority, xOffset, yOffset ];
		    if (!dispatchEvent(event))
		    {
			    return currentCursorID;
		    }
        }

        var cursorID:int = nextCursorID++;
        
