                                                          height:Number,
                                                          postLayoutTransform:Boolean = true):Number
     {
-        if (postLayoutTransform)
-        {
-            var m:Matrix = computeMatrix();
-            if (m)
-                height = MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2, m).height;
-        }
+        if (postLayoutTransform && hasComplexLayoutMatrix)
+			height = MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2, 
+													  layoutFeatures.layoutMatrix).height;
 
         // Take stroke into account
         return height + getStrokeExtents().y;

package spark.primitives
{

import flash.events.EventDispatcher;
import flash.display.Graphics;
import flash.geom.Rectangle;
import flash.geom.Point;
import flash.geom.Matrix;
import mx.utils.MatrixUtil;
import spark.primitives.supportClasses.FilledElement;

/**
 *  The Ellipse class is a filled graphic element that draws an ellipse.

                                                        height:Number,
                                                        postLayoutTransform:Boolean = true):Number
    {
        if (postLayoutTransform && hasComplexLayoutMatrix)
        	width = MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2, 
        											 layoutFeatures.layoutMatrix).width;	

        // Take stroke into account
        return width + getStrokeExtents().x;
