 			return;
 		}
 
+		if (sourceProperty is ArrayList) {
+			copyArrayList(targetObj, propertyName, sourceProperty);
+			return;
+		}
+
 		if (sourceProperty is ArrayCollection) {
 			copyArrayCollection(targetObj, propertyName, sourceProperty);
 			return;

			return;
		}

		if (sourceProperty is ArrayCollection) {
			copyArrayCollection(targetObj, propertyName, sourceProperty);
			return;

package dolly.utils {

import mx.collections.ArrayCollection;
import mx.collections.ArrayList;

public class CopyUtil {

	private static function copyArray(targetObj:*, propertyName:String, sourceProperty:*):void {
		targetObj[propertyName] = (sourceProperty as Array).slice();
	}

	private static function copyArrayList(targetObj:*, propertyName:String, arrayList:ArrayList):void {
		targetObj[propertyName] = arrayList.source ? new ArrayList(arrayList.source) : new ArrayList();
	}

	private static function copyArrayCollection(targetObj:*, propertyName:String, sourceProperty:*):void {
