      */
     private function uninstallMouseListeners():void
     {
-        var sbRoot:DisplayObject = target.systemManager.getSandboxRoot();
+        const sm:ISystemManager = target.systemManager;
+        const sbRoot:DisplayObject = sm.getSandboxRoot();
         
         // mouse events added in installMouseListeners()
         sbRoot.removeEventListener(MouseEvent.MOUSE_MOVE, sbRoot_mouseMoveHandler, true);
         sbRoot.removeEventListener(MouseEvent.MOUSE_UP, sbRoot_mouseUpHandler, true);
+        
+        if (sm.stage && sm.isTopLevelRoot())
+            sm.stage.removeEventListener(MouseEvent.MOUSE_UP, sbRoot_mouseUpHandler);
+        
         sbRoot.removeEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, sbRoot_mouseUpHandler);
-        
+
         target.systemManager.deployMouseShields(false);
     }
     

            dragTimer.stop();
        }
    }
    
    /**
     *  @private
     *  Called when the user releases the mouse/touches up

import mx.events.SandboxMouseEvent;
import mx.events.TouchInteractionEvent;
import mx.events.TouchInteractionReason;
import mx.managers.ISystemManager;
import mx.utils.GetTimerUtil;

use namespace mx_internal;
