         else
             return target.getStyle(property);
     }
+
+    /**
+     * Enables or disables autoLayout in the target's container.
+     * This is used to disable layout during the course of an animation,
+     * and to re-enable it when the animation finishes.
+     */
+    private function setupParentLayout(enable:Boolean):void
+    {
+        var parent:* = null;
+        if ("parent" in target && target.parent)
+        {
+            parent = target.parent;
+        }
+        else if ("elementHost" in target && target.elementHost)
+        {
+            parent = target.elementHost;
+        }
+        if (parent)
+        {
+            if (parent is Container)
+                Container(parent).autoLayout = enable;
+            else if (parent is GroupBase)
+                GroupBase(parent).autoLayout = enable;
+        }
+    }
 }
 }

    private var constraintsHolder:Object;
    
    private function reenableConstraint(name:String):void
    {
        var value:* = constraintsHolder[name];
        if (value !== undefined)
        {
            target.setStyle(name, value);
            delete constraintsHolder[name];
        }
    }

            
        isStyleMap = new Array(propertyValuesList.length);
        
        if (affectsConstraints || adjustConstraints)
            cacheConstraints(affectsConstraints);
        
        if (disableLayout)
            setupParentLayout(false);
            
        // These two temporary arrays will hold the values passed into the
        // Animation to be interpolated between during the animation. The order
