             
             if (targetPostLayoutPosition != null && _postLayoutTransformOffsets != null)
             {           
+                // computedMatrix factor in stretchXY, so divide it out of transform center first
+                transformCenterP.x /= stretchX;
+                transformCenterP.y /= stretchY;
                 var currentPostLayoutPosition:Point = 
                     computedMatrix.transformPoint(transformCenterP);
                 if (currentPostLayoutPosition.x != targetPostLayoutPosition.x || 

        var transformedP:Point;
        tempLocalPosition = 
            localPosition ?
            localPosition :
            new Vector3D();
                
        if (is3D || propertyIs3D) 

            
            if (postLayoutPosition != null)
            {           
                // computedMatrix factor in stretchXY, so divide it out of position first
                tempLocalPosition.x /= stretchX;
                tempLocalPosition.y /= stretchY;
                transformedV = transformVector(computedMatrix3D, tempLocalPosition);
                postLayoutPosition.x = transformedV.x;
                postLayoutPosition.y = transformedV.y;
