      *  An array of information about currently active popups
      */
     mx_internal var popupInfo:Array = [];
+    
+    /**
+     *  @private
+     *  The first popup to use a blur per systemManager.
+     *  We need to track that in order to know when to remove the blur
+     *  if stacks of modal popups are created and then taken down. 
+     */
+    private var blurOwners:Dictionary = new Dictionary(true);
 
     //--------------------------------------------------------------------------
     //

            fade.play();
            
            var sm:ISystemManager = o.systemManager;
            var awm:IActiveWindowManager = 
                IActiveWindowManager(sm.getImplementation("mx.managers::IActiveWindowManager"));
            // don't remove blur unless this is the last modal window
            if (awm.numModalWindows == 1)
            {
                
                // Blur effect on the application

import flash.geom.Point;
import flash.geom.Rectangle;
import flash.system.Capabilities;
import flash.utils.Dictionary;

import mx.automation.IAutomationObject;
import mx.core.FlexGlobals;
