         if (useSymbolColor)
             applySymbolColor();
         
+        if (useMinimumHitArea)
+            drawMinimumHitArea(unscaledWidth, unscaledHeight);
+        
         drawBackground(unscaledWidth, unscaledHeight);
+    }
+    
+    /**
+     *  @private
+     *  Make the component's explicitMinWidth property override its skin's.
+     *  This is useful for cases where the skin's minWidth constrains
+     *  the skin's measured size. In those cases the user could set
+     *  explicit limits on the component itself thus relaxing the
+     *  hard-coded limits in the skin. See SDK-24741.
+     */
+    override public function get explicitMinWidth():Number
+    {
+        if (parent is SkinnableComponent)
+        {
+            var parentExplicitMinWidth:Number = SkinnableComponent(parent).explicitMinWidth;
+            if (!isNaN(parentExplicitMinWidth))
+                return parentExplicitMinWidth;
+        }
+        return super.explicitMinWidth;
+    }
+    
+    /**
+     *  @private
+     *  Make the component's explicitMinWidth property override its skin's.
+     *  This is useful for cases where the skin's minWidth constrains
+     *  the skin's measured size. In those cases the user could set
+     *  explicit limits on the component itself thus relaxing the
+     *  hard-coded limits in the skin. See SDK-24741.
+     */
+    override public function get explicitMinHeight():Number
+    {
+        if (parent is SkinnableComponent)
+        {
+            var parentExplicitMinHeight:Number = SkinnableComponent(parent).explicitMinHeight;
+            if (!isNaN(parentExplicitMinHeight))
+                return parentExplicitMinHeight;
+        }
+        return super.explicitMinHeight;
+    }
+    
+    /**
+     *  @private
+     *  Make the component's explicitMinWidth property override its skin's.
+     *  This is useful for cases where the skin's minWidth constrains
+     *  the skin's measured size. In those cases the user could set
+     *  explicit limits on the component itself thus relaxing the
+     *  hard-coded limits in the skin. See SDK-24741.
+     */
+    override public function get explicitMaxWidth():Number
+    {
+        if (parent is SkinnableComponent)
+        {
+            var parentExplicitMaxWidth:Number = SkinnableComponent(parent).explicitMaxWidth;
+            if (!isNaN(parentExplicitMaxWidth))
+                return parentExplicitMaxWidth;
+        }
+        return super.explicitMaxWidth;
+    }
+    
+    /**
+     *  @private
+     *  Make the component's explicitMinWidth property override its skin's.
+     *  This is useful for cases where the skin's minWidth constrains
+     *  the skin's measured size. In those cases the user could set
+     *  explicit limits on the component itself thus relaxing the
+     *  hard-coded limits in the skin. See SDK-24741.
+     */
+    override public function get explicitMaxHeight():Number
+    {
+        if (parent is SkinnableComponent)
+        {
+            var parentExplicitMaxHeight:Number = SkinnableComponent(parent).explicitMaxHeight;
+            if (!isNaN(parentExplicitMaxHeight))
+                return parentExplicitMaxHeight;
+        }
+        return super.explicitMaxHeight;
     }
     
     //--------------------------------------------------------------------------

    protected var useSymbolColor:Boolean = false;
    
    /**
     *  Specifies a default width. <code>measuredWidth</code> returns this value
     *  when the computed <code>measuredWidth</code> is less than
     *  <code>measuredDefaultWidth</code>.

    //  Class methods
    //
    //--------------------------------------------------------------------------
    
    mx_internal function drawMinimumHitArea(unscaledWidth:Number, unscaledHeight:Number):void
    {
        // minimum hit area is 0.25 inches square
        var minSize:Number = applicationDPI / 4;
        
        // skip if skin size is larger than minimum
        if ((unscaledWidth > minSize) && (unscaledHeight > minSize))
            return;
        
        // center a transparent hit area larger than the skin
        var hitAreaWidth:Number = Math.max(minSize, unscaledWidth);
        var hitAreaHeight:Number = Math.max(minSize, unscaledHeight);
        var hitAreaX:Number = (unscaledWidth - hitAreaWidth) / 2;
        var hitAreaY:Number = (unscaledHeight - hitAreaHeight) / 2;
        
        graphics.beginFill(0, 0);
        graphics.drawRect(hitAreaX, hitAreaY, hitAreaWidth, hitAreaHeight);
        graphics.endFill();
    }
    
    /**
     *  Positions the children for this skin.
