                 (translation != null && translation.z != 0 && !isNaN(translation.z)) ||
                 postLayoutScale != null ||
                 postLayoutRotation != null ||
-                postLayoutTranslation != null;
+                (postLayoutTranslation != null && 
+                    (translation == null ||
+                     postLayoutTranslation.x != translation.x ||
+                     postLayoutTranslation.y != translation.y ||
+                     postLayoutTranslation.z != translation.z));
             if (needAdvancedLayout)
                 initAdvancedLayoutFeatures();
         }

    }
    
    /**
     *  Defines a set of adjustments that can be applied to the component's transform in a way that is 
     *  invisible to the component's parent's layout. For example, if you want a layout to adjust 
     *  for a component that will be rotated 90 degrees, you set the component's <code>rotation</code> property. 
     *  If you want the layout to <i>not</i> adjust for the component being rotated, you set its 
     *  <code>postLayoutTransformOffsets.rotationZ</code> property.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
    public function set postLayoutTransformOffsets(value:TransformOffsets):void
    {
		if (_layoutFeatures == null)
			initAdvancedLayoutFeatures();
        
        if (_layoutFeatures.postLayoutTransformOffsets != null)
            _layoutFeatures.postLayoutTransformOffsets.removeEventListener(Event.CHANGE,transformOffsetsChangedHandler);
        _layoutFeatures.postLayoutTransformOffsets = value;
        if (_layoutFeatures.postLayoutTransformOffsets != null)
            _layoutFeatures.postLayoutTransformOffsets.addEventListener(Event.CHANGE,transformOffsetsChangedHandler);
    }

    /**
     * @private
     */
    public function get postLayoutTransformOffsets():TransformOffsets
    {
        return (_layoutFeatures != null)? _layoutFeatures.postLayoutTransformOffsets:null;
    }

    /**

        }
        else
        {
            if (translation == null && transformCenter != null)
            {
                if (xformPt == null)
                    xformPt = new Point();
                xformPt.x = transformCenter.x;
                xformPt.y = transformCenter.y;                
                var xformedPt:Point = 
                    super.transform.matrix.transformPoint(xformPt);
            }
            if (rotation != null && !isNaN(rotation.z))
                this.rotation = rotation.z;
            if (scale != null)
