                 }
             }
         }
+        
+        // and turn on change events again once we're done
+        if (isCollection)
+        {
+            (result as ArrayCollection).enableAutoUpdate();
+        }
 
         // Cycle through the attributes
         var attributes:Object = dataNode.attributes;

                var seenProperties:Object = {};
                var lastPartName:Object = {qname: null, propname: null};
                

                for (var i:uint = 0; i < children.length; i++)
                {
                    var partNode:XMLNode = children[i];

        // so what type did we eventually use?
        var resultTypeName:String = getQualifiedClassName(result);
        
        var isCollection:Boolean = false;
        
        // thus, what type of assignment function should we use?
        var assign:Function;
        
        if (XObjUtils.isTypeArray(resultType))
        {
            assign = assignToArray;
        }
        else if (XObjUtils.isTypeArrayCollection(resultType))
        {
            isCollection = true;
            assign = assignToArray;
            (result as ArrayCollection).disableAutoUpdate();
        }
        else
            assign = assignToProperty;

