     /**
      *  @private
      */
-    private function mouseDownOutsideHandler(event:MouseEvent):void
-    {
-        if (!isMouseOverMenu(event) && !isMouseOverMenuBarItem(event))
+    private function mouseDownOutsideHandler(event:Event):void
+    {
+        if (event is MouseEvent)
+        {
+            var mouseEvent:MouseEvent = MouseEvent(event);
+            if (!isMouseOverMenu(mouseEvent) && !isMouseOverMenuBarItem(mouseEvent))
+                hideAllMenus();
+        }
+        else if (event is MarshalMouseEvent)
             hideAllMenus();
     }
 

import mx.events.CollectionEvent;
import mx.events.CollectionEventKind;
import mx.events.FlexEvent;
import mx.events.ListEvent;
import mx.events.MenuEvent;
import mx.managers.IFocusManagerContainer;
import mx.managers.PopUpManager;

use namespace mx_internal;

        supposedToLoseFocus = true;
        
        // If the user clicks outside the menu, then hide the menu
        var sbRoot:DisplayObject = ISystemManager2(systemManager).getSandboxRoot();
        sbRoot.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownOutsideHandler, false, 0, true);
        addEventListener(MarshalMouseEvent.MOUSE_DOWN, mouseDownOutsideHandler, false, 0, true);
    }

    /**
