 			}
 		}
 
-		if (hasSWFBridges())
-		{
-			var actualType:String = EventUtil.sandboxRootMouseEventMap[type];
+		if (hasSWFBridges() || SystemManagerGlobals.topLevelSystemManagers.length > 1)
+		{
+			var actualType:String = EventUtil.sandboxMouseEventMap[type];
 			if (actualType)
 			{
+				if (getSandboxRoot() == this)
+                    super.removeEventListener(actualType, eventProxy.marshalListener,
+                            useCapture);
+				if (!SystemManagerGlobals.changingListenersInOtherSystemManagers)
+					removeEventListenerFromOtherSystemManagers(type, otherSystemManagerMouseListener, useCapture);
 				removeEventListenerFromSandboxes(type, sandboxMouseListener, useCapture);
 				super.removeEventListener(type, listener, false);
 				return;

			return;
		}
		
		bridge.addEventListener(PopUpRequest.ADD_POP_UP_REQUEST, addPopupRequestHandler);
		bridge.addEventListener(PopUpRequest.REMOVE_POP_UP_REQUEST, removePopupRequestHandler);
		bridge.addEventListener(PopUpRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST, addPlaceholderPopupRequestHandler);
		bridge.addEventListener(PopUpRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST, removePlaceholderPopupRequestHandler);
		bridge.addEventListener(SWFBridgeEvent.NOTIFY_WINDOW_ACTIVATED, activateFormSandboxEventHandler);
		bridge.addEventListener(SWFBridgeEvent.NOTIFY_WINDOW_DEACTIVATED, deactivateFormSandboxEventHandler); 
		bridge.addEventListener(SWFBridgeEvent.NOTIFY_APPLICATION_ACTIVATED, activateApplicationSandboxEventHandler);
		bridge.addEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST, eventListenerRequestHandler, false, 0, true);
		bridge.addEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST, eventListenerRequestHandler, false, 0, true);
        bridge.addEventListener(ModalWindowRequest.CREATE_MODAL_WINDOW_REQUEST, modalWindowRequestHandler);
        bridge.addEventListener(ModalWindowRequest.SHOW_MODAL_WINDOW_REQUEST, modalWindowRequestHandler);
        bridge.addEventListener(ModalWindowRequest.HIDE_MODAL_WINDOW_REQUEST, modalWindowRequestHandler);
        bridge.addEventListener(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST, getVisibleRectRequestHandler);
        bridge.addEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST, hideMouseCursorRequestHandler);
        bridge.addEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST, showMouseCursorRequestHandler);

     */  
    private function modalWindowRequestHandler(event:Event):void
    {
        if (event is SWFBridgeRequest)
            return;
        
        var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event);
            
        if (!preProcessModalWindowRequest(request, this, getSandboxRoot()))
            return;
