                 if (parentH > 0 && constraintsHolder["verticalCenter"] !== undefined)
                 {
                     // Layout uses verticalCenter to calculate position this way
-                    // location.y = parentH / 2 - size.y / 2 + verticalCenter
-                    constraintsHolder["verticalCenter"] = location.y + size.y / 2 - parentH / 2;
+                    // targetY = parentH / 2 - targetH / 2 + verticalCenter
+                    constraintsHolder["verticalCenter"] = targetY + targetH / 2 - parentH / 2;
                 }
 
                 // TODO EGeorgie: add support for 'baseline' constraint, when the new layouts support it.

import mx.effects.interpolation.IEaser;
import mx.effects.interpolation.IInterpolator;
import mx.events.AnimationEvent;
import mx.layout.ILayoutItem;
import mx.layout.LayoutItemFactory;
import mx.managers.LayoutManager;
import mx.styles.IStyleClient;
import mx.core.IVisualElementContainer;

        {
            if (adjustConstraints)
            {
                var layoutElement:ILayoutElement = LayoutElementFactory.getLayoutElementFor(target);
                var parentW:int = 0;
                var parentH:int = 0;
                var targetX:Number = layoutElement.getLayoutPositionX();
                var targetY:Number = layoutElement.getLayoutPositionY();
                var targetW:Number = layoutElement.getLayoutWidth();
                var targetH:Number = layoutElement.getLayoutHeight();
                
                // For 'bottom' or 'verticalCenter' we need the parent height
                if (constraintsHolder["bottom"] !== undefined ||
