         // FIXME (egreenfi): optimize for simple translations
         allocateLayoutFeatures();
         var previous:Boolean = needsDisplayObject;
+        var prevX:Number = layoutFeatures.layoutX;
+        var prevY:Number = layoutFeatures.layoutY;
+        var prevZ:Number = layoutFeatures.layoutZ;
         layoutFeatures.transformAround(transformCenter,scale,rotation,translation,postLayoutScale,postLayoutRotation,postLayoutTranslation);
         invalidateTransform(previous != needsDisplayObject);
+        if (prevX != layoutFeatures.layoutX)
+            dispatchPropertyChangeEvent("x", prevX, layoutFeatures.layoutX);
+        if (prevY != layoutFeatures.layoutY)
+            dispatchPropertyChangeEvent("y", prevY, layoutFeatures.layoutY);
+        if (prevZ != layoutFeatures.layoutZ)
+            dispatchPropertyChangeEvent("z", prevZ, layoutFeatures.layoutZ);
     }
     
     /**

            _width = width;
            _height = height;
            
            dispatchPropertyChangeEvent("width", oldWidth, width);
            dispatchPropertyChangeEvent("height", oldHeight, height);

            invalidateDisplayList();
        }

                _x = newX;
                _y = newY;
            }
            if (newX != currentX)
                dispatchPropertyChangeEvent("x", currentX, newX);
            if (newY != currentY)
                dispatchPropertyChangeEvent("y", currentY, newY);

            invalidateDisplayList();
        }
    }
