      */    
     public function set selected(value:Boolean):void
     {
-        if (!flags.update(selectedFlag, value))
+        if (BitFlagUtil.isSet(flags, selectedFlag) == value)
             return;
+         
+        flags = BitFlagUtil.update(flags, selectedFlag, value);
 
         dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
         invalidateButtonState();

     */    
    public function get selected():Boolean
    {
        return flags.isSet(selectedFlag);
    }
    
    /**

import flash.events.MouseEvent;

import mx.events.FlexEvent;
import mx.utils.BitFlagUtil;

/**
 *  Dispatched when the <code>selected</code> property 
