     //--------------------------------------------------------------------------
 
     /**
-     *  @private
+     *  The state to be used when matching CSS pseudo-selectors. This override
+     *  returns the current skin state instead of the component state.
      */ 
-    override public function get pseudoSelectorState():String
+    override protected function get currentCSSState():String
     {
         return getCurrentSkinState();
     }

    /**
     *  @private 
     */
    override public function isPseudoSelectorMatch(pseudoState:String):Boolean
    {
        return getCurrentSkinState() == pseudoState || currentState == pseudoState;
    }

    /**

    override protected function commitProperties():void
    {
        super.commitProperties();

        if (skinChanged)
        {
            skinChanged = false;
            validateSkinChange();
        }

        if (skinStateIsDirty)
        {
            // This component must first be updated to the pending state as the
            // skin inherits styles from this component.
            var pendingState:String = getCurrentSkinState();
            stateChanged(skin.currentState, pendingState, false);
            skin.currentState = pendingState;
            skinStateIsDirty = false;
        }
