             if (!isNaN(explicitMaxHeight) && measuredHeight > explicitMaxHeight)
                 measuredHeight = explicitMaxHeight;
 
-            if (xScale != 1.0)
+            if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
             {
-                _measuredMinWidth *= xScale;
-                _measuredWidth *= xScale;
-            }
-
-            if (yScale != 1.0)
-            {
-                _measuredMinHeight *= yScale;
-                _measuredHeight *= yScale;
+                if (xScale != 1.0)
+                {
+                    _measuredMinWidth *= xScale;
+                    _measuredWidth *= xScale;
+                }
+    
+                if (yScale != 1.0)
+                {
+                    _measuredMinHeight *= yScale;
+                    _measuredHeight *= yScale;
+                }
             }
         }
 

            var xScale:Number = Math.abs(scaleX);
            var yScale:Number = Math.abs(scaleY);

            if (xScale != 1.0)
            {
                _measuredMinWidth /= xScale;
                _measuredWidth /= xScale;
            }

            if (yScale != 1.0)
            {
                _measuredMinHeight /= yScale;
                _measuredHeight /= yScale;
            }

            measure();

     */
    protected function get unscaledWidth():Number
    {
        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
            return width / Math.abs(scaleX);
        else
            return width;
    }

    /**
