 	    	 
 		    commonMatrix.rotate (!isNaN(_angle) ? _angle : rotationInRadians);
 		    if (isNaN(tx))
-		    	tx = rc.width / 2;
+	    		tx = bounds.width / 2;
 		    if (isNaN(ty))
-		    	ty = rc.height / 2;
-		    commonMatrix.translate(tx + rc.left, ty + rc.top);						 
+	    		ty = bounds.height / 2;
+	    	commonMatrix.translate(tx + bounds.left, ty + bounds.top);						 
 		}
 		else
 		{
-			commonMatrix.scale(rc.width / GRADIENT_DIMENSION, 1);
-			commonMatrix.translate(rc.left + rc.width / 2, 0);
+			commonMatrix.scale(bounds.width / GRADIENT_DIMENSION, 1);
+			commonMatrix.translate(bounds.left + bounds.width / 2, 0);
 			commonMatrix.concat(compoundTransform.matrix);
 		}			 
 		

	 *  @playerversion AIR 1.1
	 *  @productversion Flex 3
	 */
	public function begin(target:Graphics, rc:Rectangle):void
	{
		commonMatrix.identity();
		

					if (normalizedAngle > 90)
						normalizedAngle = 180 - normalizedAngle;
					
					var side:Number = bounds.width;
					// Get the hypotenuse of the largest triangle that can fit in the bounds
					var hypotenuse:Number = Math.sqrt(bounds.width * bounds.width + bounds.height * bounds.height);
					// Get the angle of that largest triangle
					var hypotenuseAngle:Number =  Math.acos(bounds.width / hypotenuse) * 180 / Math.PI;
					
					// If the angle is larger than the hypotenuse angle, then use the height 
					// as the adjacent side of the triangle
					if (normalizedAngle > hypotenuseAngle)
					{
						normalizedAngle = 90 - normalizedAngle;
						side = bounds.height;
					}
					
					// Solve for the hypotenuse given an adjacent side and an angle. 
