             pt.y += 2;
 
         menu.show(pt.x, pt.y);
+    }
+    
+    /**
+     *  @private
+     *  Removes the root menu from the display list.  This is called only for
+     *  menus created using "createMenu".
+     * 
+     *  MJM private static?
+     */
+    private static function menuHideHandler(event:MenuEvent):void
+    {
+        var menu:Menu = Menu(event.target);
+        if (!event.isDefaultPrevented() && event.menu == menu)
+        {
+            menu.supposedToLoseFocus = true;
+            PopUpManager.removePopUp(menu);
+            menu.removeEventListener(MenuEvent.MENU_HIDE, menuHideHandler);
+        }
     }
 
     /**

        var sm:ISystemManager = systemManager.topLevelSystemManager;
        var screen:Rectangle = sm.getVisibleApplicationRect();

        UIComponentGlobals.layoutManager.validateClient(menu, true);
        
        // popups go on the root of the swf which if loaded, is not

{

import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.events.Event;
import flash.events.FocusEvent;
import flash.events.KeyboardEvent;
