 		}
 
 		if (sourceProperty is ArrayList) {
-			copyArrayList(targetObj, propertyName, sourceObj);
+			copyArrayList(sourceObj, targetObj, propertyName);
 			return;
 		}
 

		}

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


		targetObj[propertyName] = sourceObj[propertyName].slice();
	}

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

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