 
         var sm:ISystemManager2 = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
         var sbRoot:DisplayObject = sm.getSandboxRoot();
-        
-        if (!preProcessModalWindowRequest(request, sm, sbRoot))
-            return;
         
         // the highest popUpData in the list is the most recent modal window.
         // sanity check that the popupdata is really a modal window with a null

        if (sm.useBridge())
        {
            var sbRoot:DisplayObject = sm.getSandboxRoot();
            var modalRequest:ModalWindowRequest = new ModalWindowRequest(ModalWindowRequest.HIDE,
                                                                         !o.isRemoteModalWindow && sm != sbRoot, 
                                                                         destroy);
            var bridge:IEventDispatcher = sm.sandboxBridgeGroup.parentBridge;
            var target:IEventDispatcher;
             
            modalRequest.requestor = bridge;

            if (sm == sbRoot)
                target = sm.sandboxBridgeGroup.parentBridge;
            else
                target = sbRoot;
                
            target.dispatchEvent(modalRequest);
        }

    }

    {
        var modalBounds:Rectangle = modalWindow.getBounds(DisplayObject(sm));
        var excludeBounds:Rectangle;
        var pt:Point;
                
        if (exclude is IApplicationLoader)
        {
            excludeBounds = IApplicationLoader(exclude).getVisibleApplicationRect();
            pt = new Point(excludeBounds.x, excludeBounds.y);
            pt = DisplayObject(sm).globalToLocal(pt);
            excludeBounds.x = pt.x;
            excludeBounds.y = pt.y;    
        }
        else 
            excludeBounds = DisplayObject(exclude).getBounds(DisplayObject(sm));
        
        // apply excludeRect to the result
        if (excludeRect)
        {
            pt = new Point(excludeRect.x, excludeRect.y);
            pt = DisplayObject(sm).globalToLocal(pt);
            var rect:Rectangle = new Rectangle(pt.x, pt.y, excludeRect.width, excludeRect.height);
            excludeBounds = excludeBounds.intersection(rect);
