         if (targets.length > 0)
         {
             // make temporary PropertyChangesArray
-            var additionalPropertyChangesArray:Array = [];
-            
-            // Create a new PropertyChanges object for the sum of all targets.
-            for (var i:int = 0; i < targets.length; i++)
-                additionalPropertyChangesArray.push(new PropertyChanges(targets[i]));
-            
-            additionalPropertyChangesArray = captureValues(additionalPropertyChangesArray,true);
+            var additionalPropertyChangesArray:Array = captureValues(null, true);
             
             mx_internal::propertyChangesArray = 
                 mx_internal::propertyChangesArray.concat(additionalPropertyChangesArray);

        
        var valueMap:Object;
        var target:Object;      
        var n:int;
        var i:int;
        var m:int;  
        var j:int;
        

     */
    public function captureEndValues():void
    {
        // captureValues will create propertyChangesArray if it does not
        // yet exist
        mx_internal::propertyChangesArray =
            captureValues(mx_internal::propertyChangesArray, false);
        endValuesCaptured = true;
    }
        
