             return;
         
         mouseCaptured = false;
+        
+        // If the mouseDownSelectTimer is still running, 
+        // we don't want to ever go in to the down state in this case, so stop it
+        if (mouseDownSelectTimer && mouseDownSelectTimer.running)
+            stopSelectButtonAfterDelayTimer();
     }
     
     /**

        if (isDown())
            return "down";
        
        if (hovered || mouseCaptured)
            return "over";
        
        return "up";
    }
    
    /**
     *  @private
     */ 
    override public function styleChanged(styleName:String):void
    {
        var allStyles:Boolean = styleName == null || styleName == "styleName";
        
        super.styleChanged(styleName);
        
        if (allStyles || styleName == "inputMode")
        {
            addHandlers();
        }
    }

    //--------------------------------------------------------------------------
    //
    //  Methods

     */
    protected function addHandlers():void
    {
        addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler);
        addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler);
        addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler);
        addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler);
        addEventListener(MouseEvent.CLICK, mouseEventHandler);
