                     explicitMaxWidth *= scalingFactorX;
 
                 _width *= scalingFactorX;
-            }
-
+
+	            super.scaleX = oldScaleX = _scaleX;
+	        }
+
+	        if (_scaleY != oldScaleY)
+	        {
+	            var scalingFactorY:Number = Math.abs(_scaleY / oldScaleY);
+	            if (!isNaN(explicitMinHeight))
+	                explicitMinHeight *= scalingFactorY;
+	            if (!isNaN(explicitHeight))
+	                explicitHeight *= scalingFactorY;
+	            if (!isNaN(explicitMaxHeight))
+	                explicitMaxHeight *= scalingFactorY;
+	
+	            _height *= scalingFactorY;
+	
+	            super.scaleY = oldScaleY = _scaleY;
+	        }
+        }
+        else
+        {
             oldScaleX = scaleX;
-        }
-
-    	var sY:Number = scaleY;
-        if (sY != oldScaleY)
-        {
-            if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
-            {
-                var scalingFactorY:Number = Math.abs(scaleY / oldScaleY);
-                if (!isNaN(explicitMinHeight))
-                    explicitMinHeight *= scalingFactorY;
-                if (!isNaN(explicitHeight))
-                    explicitHeight *= scalingFactorY;
-                if (!isNaN(explicitMaxHeight))
-                    explicitMaxHeight *= scalingFactorY;
-
-                _height *= scalingFactorY;
-            }
-
-			oldScaleY = sY;
+			oldScaleY = scaleY;
         }
 
         if (x != oldX || y != oldY)

     *
     * storage for advanced layout and transform properties.
     */
	private var _xformOffsets:TransformOffset;

    /**
     * @private

     */
    override public function get y():Number
    {
    	return (_layoutFeatures == null)? super.y:_layoutFeatures.layoutY;
    }

    /**
