             
         isStyleMap = new Array(propertyValuesList.length);
         
-        if (affectsConstraints)
-            disableConstraints();
+        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

    protected function endHandler(event:AnimationEvent):void
    {
        dispatchEvent(event);
        finishEffect();
        if (affectsConstraints)
            reenableConstraints();
        if (autoRemoveTarget)
            removeDisappearingTarget();
    }

    /**

        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;
        }
    }
}
}