 	 *  from 0.0 to 1.0.
 	 *  If 1.0, the bitmap is filled at its natural size.
 	 *
-	 *  @default 1.0
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function get scaleX():Number
+	{
+        return compoundTransform ? compoundTransform.scaleX : _scaleX;
+	}
+	
+    /**
+     *  @private
+     */  
+	public function set scaleX(value:Number):void
+	{
+		if (value != scaleX)
+		{
+            var oldValue:Number = scaleX;
+
+            if (compoundTransform)
+            {
+                // If we have a compoundTransform, only non-NaN values are allowed
+                if (!isNaN(value))
+                    compoundTransform.scaleX = value;
+            }
+            else
+            {
+			    _scaleX = value;
+            }
+			dispatchFillChangedEvent("scaleX", oldValue, value);
+		}
+	}
+
+	//----------------------------------
+	//  scaleY
+	//----------------------------------
+	
+	private var _scaleY:Number;
+	
+	[Bindable("propertyChange")]
+	[Inspectable(category="General")]	
+	
+	/**
+	 *  The percent to vertically scale the bitmap when filling,
+	 *  from 0.0 to 1.0.
+	 *  If 1.0, the bitmap is filled at its natural size.
 	 *  
 	 *  @langversion 3.0
 	 *  @playerversion Flash 9
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
 	 */
-	public function get scaleX():Number
-	{
-        return compoundTransform ? compoundTransform.scaleX : _scaleX;
-	}
-	
-    /**
-     *  @private
-     */  
-	public function set scaleX(value:Number):void
-	{
-		if (value != scaleX)
-		{
-            var oldValue:Number = scaleX;
-            
-            if (compoundTransform)
-                compoundTransform.scaleX = value;
-            else
-			    _scaleX = value;
-			dispatchFillChangedEvent("scaleX", oldValue, value);
-		}
-	}
-
-	//----------------------------------
-	//  scaleY
-	//----------------------------------
-	
-	private var _scaleY:Number = 1.0;
-	
-	[Bindable("propertyChange")]
-	[Inspectable(category="General")]	
-	
-	/**
-	 *  The percent to vertically scale the bitmap when filling,
-	 *  from 0.0 to 1.0.
-	 *  If 1.0, the bitmap is filled at its natural size.
-	 *
-	 *  @default 1.0 
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
 	public function get scaleY():Number
 	{
         return compoundTransform ? compoundTransform.scaleY : _scaleY;

        if (compoundTransform)
        {
            transformMatrix = compoundTransform.matrix;
            transformMatrix.translate(targetBounds.left, targetBounds.top);
        }
        else
        {
            transformMatrix.identity();
            transformMatrix.translate(-transformX, -transformY);
            
            // If fillMode is scale and our bitmapdata width and height are > 0, scale to fill the content area  
            if (fillMode == BitmapFillMode.SCALE && sourceAsBitmapData.width > 0 && sourceAsBitmapData.height > 0)
                transformMatrix.scale((targetBounds.width/sourceAsBitmapData.width), (targetBounds.height/sourceAsBitmapData.height)); 
            
            transformMatrix.scale(scaleX, scaleY);
            transformMatrix.rotate(rotation * RADIANS_PER_DEGREES);
            transformMatrix.translate(x + targetBounds.left + transformX, y + targetBounds.top + transformY);
        }
        
        // If repeat is true, fillMode is repeat, or if the source bitmap size  
        // equals or exceeds the targetBounds, just use the source bitmap
        if (repeatFill || 

	//----------------------------------
	//  offsetX
	//----------------------------------

    [Bindable("propertyChange")]
	[Inspectable(category="General")]	
	[Deprecated(replacement="x", since="4.0")]
	
