     {
         super.enabled = value;
         invalidateSkinState();
-        
-        // We update the mouseShield that prevents clicks to propagate to
-        // children in our updateDisplayList.
-        invalidateDisplayList();
+
+        // If enabled, reset the mouseChildren, mouseEnabled to the previously
+        // set explicit value, otherwise disable mouse interaction.
+        super.mouseChildren = value ? _explicitMouseChildren : false;
+        super.mouseEnabled  = value ? _explicitMouseEnabled  : false; 
     }
 
     //----------------------------------

    {
        return enabled ? "normal" : "disabled";
    }
    
    /**
     *  @inheritDoc
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    {
        super.updateDisplayList(unscaledWidth, unscaledHeight);
        mouseShield = MouseShieldUtil.updateMouseShield(this, mouseShield);
    }

    //--------------------------------------------------------------------------
    //
    //  Variables
    //
    //--------------------------------------------------------------------------
     
    /**
     *  @private
     *  Mouse shield that is put up when this component is disabled.
     */
    private var mouseShield:DisplayObject;
}
}
{
    
import flash.display.DisplayObject;

import mx.core.ContainerGlobals;
import mx.core.IFlexDisplayObject;
import mx.managers.IFocusManagerContainer;

/**
 *  Normal State
