 
             // Revalidate after applying the start values, to get everything
             // back the way it should be before starting the animation
+            // TODO (chaase): should we skip this step if the effect has asked
+            // to disable layout while it runs? Otherwise we are about to validate
+            // the targets in a layout that has potentially been set to a post-effect
+            // value
             LayoutManager.getInstance().validateNow();
             
             applyEndValuesWhenDone = true;

                m = relevantStyles.length;
                for (j = 0; j < m; j++)
                {
                    if (relevantStyles[j] in propChanges[i].end &&
                        target is IStyleClient)
                    {
                        if (propChanges[i].end[relevantStyles[j]] !== undefined)
                            target.setStyle(relevantStyles[j], propChanges[i].end[relevantStyles[j]]);
                        else
                            target.clearStyle(relevantStyles[j]);
                    }
                }
            }

                m = effectProps.length;
                for (j = 0; j < m; j++)
                {
                    var propName:String = effectProps[j];
                    var startVal:* = propChanges[i].start[propName];
                    var endVal:* = propChanges[i].end[propName];
                    if (propName in propChanges[i].start &&
                        endVal != startVal &&
                        (!(startVal is Number) ||
                         !(isNaN(endVal) && isNaN(startVal))))
                    {
                        applyValueToTarget(target, effectProps[j],
                                propChanges[i].start[effectProps[j]],
