             
             if (postLayoutPosition != null)
             {
+                // computedMatrix factor in stretchXY, so divide it out of position first
+                localP.x /= stretchX;
+                localP.y /= stretchY;
                 transformedP = computedMatrix.transformPoint(localP);
                 postLayoutPosition.x = transformedP.x;
                 postLayoutPosition.y = transformedP.y;

        {
            if (targetPosition != null)
            {
                var adjustedLayoutCenterV:Vector3D = transformVector(layoutMatrix3D,transformCenter); 
                if (adjustedLayoutCenterV.equals(targetPosition) == false)
                {
                    layout.translateBy(targetPosition.x - adjustedLayoutCenterV.x,

            }
            if (targetPostLayoutPosition != null && _postLayoutTransformOffsets != null)
            {
                // computedMatrix factor in stretchXY, so divide it out of transform center first
                var tmpPos:Vector3D = new Vector3D(transformCenter.x, transformCenter.y, transformCenter.z);
                tmpPos.x /= stretchX;
                tmpPos.y /= stretchY;
                var adjustedComputedCenterV:Vector3D = transformVector(computedMatrix3D, tmpPos);
                if (adjustedComputedCenterV.equals(targetPostLayoutPosition) == false)
                {
                    postLayoutTransformOffsets.x +=targetPostLayoutPosition.x - adjustedComputedCenterV.x;
