 		}
 	 	else
 	 	{
-	 		commonMatrix.scale (rc.width / GRADIENT_DIMENSION, rc.height / GRADIENT_DIMENSION);
-	 		commonMatrix.translate(rc.left, rc.top);
+	 		commonMatrix.scale (bounds.width / GRADIENT_DIMENSION, bounds.height / GRADIENT_DIMENSION);
+	 		commonMatrix.translate(bounds.left, bounds.top);
 	 		commonMatrix.concat(compoundTransform.matrix);
 	 	}
 	  		  	

     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function begin(target:Graphics, rc:Rectangle):void
    {
    	var w:Number = !isNaN(scaleX) ? scaleX : rc.width;
    	var h:Number = !isNaN(scaleY) ? scaleY : rc.height;
		var regX:Number = rc.left + (!isNaN(x) ? x : rc.width / 2);
		var regY:Number = rc.top + (!isNaN(y) ? y : rc.height / 2);
			
		commonMatrix.identity();
		

     */
    override public function set matrix(value:Matrix):void
    {
    	scaleX = NaN;
    	scaleY = NaN;
    	super.matrix = value;
    }

    //----------------------------------
    //  scaleX
    //----------------------------------
    
    private var _scaleX:Number;
    
    [Bindable("propertyChange")]
    [Inspectable(category="General")]
    
    /**
     *  The horizontal scale of the gradient transform, which defines the width of the (unrotated) gradient
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function get scaleX():Number
    {
        return _scaleX; 
    }
    
    /**
     *  @private
     */
    public function set scaleX(value:Number):void
    {
        var oldValue:Number = _scaleX;
        if (value != oldValue && !compoundTransform)
        {
            _scaleX = value;
            dispatchGradientChangedEvent("scaleX", oldValue, value);
        }
    }
    
    //----------------------------------
