      */
     public function set stickyHighlighting(value:Boolean):void
     {
-        if (!flags.update(stickyHighlightingFlag, value))
-            return;
+        if (BitFlagUtil.isSet(flags, stickyHighlightingFlag) == value)
+            return;
+         
+        flags = BitFlagUtil.update(flags, stickyHighlightingFlag, value);
         
         invalidateButtonState();
     }

     */
    public function set autoRepeat(value:Boolean):void
    {
        if (!flags.update(autoRepeatFlag, value))
            return;

        checkAutoRepeatTimerConditions( isDown() );
    }

     */
    public function get autoRepeat():Boolean
    {
        return BitFlagUtil.isSet(flags, autoRepeatFlag);
    }
    
    /**
