                                      child.targets :
                                      targets;
             
-            if (child.mx_internal::filterObject == null &&
-                mx_internal::filterObject)
-            {
-                child.mx_internal::filterObject = mx_internal::filterObject;
+            if (child.filterObject == null && filterObject)
+            {
+                child.filterObject = filterObject;
             }
             
             child.applyEndValues(propChanges, childTargets);

        var childTargets:Array = getChildrenTargets();
        
        // Generate the PropertyChanges array
        mx_internal::propertyChangesArray = [];
        
        var n:int = childTargets.length;
        for (var i:int = 0; i < n; i++)
        {
            mx_internal::propertyChangesArray.push(
                new PropertyChanges(childTargets[i]));
        }
        
        // call captureValues
        mx_internal::propertyChangesArray = 
            captureValues(mx_internal::propertyChangesArray, true);
            
        endValuesCaptured = false;
    }

                var childEffect:Effect = children[i];
                
                // Pass the propertyChangesArray to each child
                if (propertyChangesArray != null)
                {
                    childEffect.propertyChangesArray = propertyChangesArray;
                }
                
                // Pass the filterObject down to the child
                // if it doesn't have a filterObject.
                if (childEffect.filterObject == null &&
                    filterObject)
                {
                    childEffect.filterObject = filterObject;
                }

				// TODO This doesn't seem good enough...
