     /**
      *  @private 
      */
-    override public function draw(g:Graphics, rc:Rectangle):void
-    {
-        g.lineStyle(weight, 0, 1, pixelHinting, scaleMode,
+    override public function apply(graphics:Graphics, bounds:Rectangle = null):void
+    {
+    	commonMatrix.identity();
+    	
+        graphics.lineStyle(weight, 0, 1, pixelHinting, scaleMode,
                     caps, joints, miterLimit);
         
-        calculateTransformationMatrix(rc, commonMatrix); 
-                 
-        g.lineGradientStyle(GradientType.RADIAL, colors,
+        if (bounds)
+        	calculateTransformationMatrix(bounds, commonMatrix); 
+	        
+        graphics.lineGradientStyle(GradientType.RADIAL, colors,
                             alphas, ratios, commonMatrix, 
                             spreadMethod, interpolationMethod, 
                             focalPointRatio);                       

    /**
     *  @private
     */
    override public function generateGraphicsStroke(rect:Rectangle):GraphicsStroke
    {
        // The parent class sets the gradient stroke properties common to 
        // LinearGradientStroke and RadialGradientStroke 
        var graphicsStroke:GraphicsStroke = super.generateGraphicsStroke(rect);
         
        if (graphicsStroke)
        {
            // Set other properties specific to this RadialGradientStroke  
            GraphicsGradientFill(graphicsStroke.fill).type = GradientType.RADIAL; 
            calculateTransformationMatrix(rect, commonMatrix);
            GraphicsGradientFill(graphicsStroke.fill).matrix = commonMatrix; 
            GraphicsGradientFill(graphicsStroke.fill).focalPointRatio = focalPointRatio;
            

    //--------------------------------------------------------------------------
    
    /**
     *  @inheritDoc
     *  
     *  @langversion 3.0
