     /**
      *  @private
      */
-    private function dropdownSwatch_mouseDownOutsideHandler(event:MouseEvent):void
-    {
-        if (!hitTestPoint(event.stageX, event.stageY, true))
+    private function dropdownSwatch_mouseDownOutsideHandler(event:Event):void
+    {
+        if (event is MouseEvent)
+        {
+            var mouseEvent:MouseEvent = MouseEvent(event);
+            if (!hitTestPoint(mouseEvent.stageX, mouseEvent.stageY, true))
+                close(event);
+        }
+        else if (event is MarshalMouseEvent)
             close(event);
     }
     

import mx.events.DropdownEvent;
import mx.events.FlexEvent;
import mx.events.FlexMouseEvent;
import mx.managers.IFocusManager;
import mx.managers.ISystemManager;
import mx.managers.PopUpManager;

                                               dropdownSwatch_mouseDownOutsideHandler);
            dropdownSwatch.removeEventListener(FlexMouseEvent.MOUSE_WHEEL_OUTSIDE,
                                               dropdownSwatch_mouseDownOutsideHandler);
            dropdownSwatch.removeEventListener(MarshalMouseEvent.MOUSE_DOWN,
                                            dropdownSwatch_mouseDownOutsideHandler);
            dropdownSwatch.removeEventListener(MarshalMouseEvent.MOUSE_WHEEL,
                                            dropdownSwatch_mouseDownOutsideHandler);
                                               
            PopUpManager.removePopUp(dropdownSwatch);
        }
