      */
     public function set scaleZ(value:Number):void
     {
-        var oldValue:Number = layoutFeatures.layoutScaleZ;
+        var oldValue:Number = scaleZ;
         if (oldValue == value)
             return;
+
+        allocateLayoutFeatures();
 
         layoutFeatures.layoutScaleZ = value;
         dispatchPropertyChangeEvent("scaleZ", oldValue, value);

        var result:Boolean;
        result = ((_filters && _filters.length > 0) || 
            _blendMode != BlendMode.NORMAL || _mask ||
            layoutFeatures.layoutScaleX != 1 || layoutFeatures.layoutScaleY != 1 || layoutFeatures.layoutScaleZ != 1 ||
            layoutFeatures.layoutRotationX != 0 || layoutFeatures.layoutRotationY != 0 || layoutFeatures.layoutRotationZ != 0 ||
            layoutFeatures.layoutZ  != 0 ||  
            _colorTransform != null ||
            _alpha != 1 ||
            _layer != 0);

        if(layoutFeatures.offsets != null)
        {
            var o:TransformOffsets = layoutFeatures.offsets;
            result = result || (o.scaleX != 1 || o.scaleY != 1 || o.scaleZ != 1 ||

     */
    public function set transformY(value:Number):void
    {
        var oldValue:Number = transformY;
        if (oldValue == value)
            return;

        allocateLayoutFeatures();

        layoutFeatures.transformY = value;
        dispatchPropertyChangeEvent("transformY", oldValue, value);
        invalidateTransform(false);
