 			for each(var metadataContainer:IMetadataContainer in metadataContainers) {
 				if (metadataContainer is Variable) {
 					variable = metadataContainer as Variable;
-					if (!variable.isStatic && variable.hasMetadata(MetadataName.CLONEABLE)) {
+					if (isVariableCloneable(variable, false)) {
 						result.push(variable);
 					}
 				} else if (metadataContainer is Accessor) {


		if (isClassCloneable) {
			for each(variable in type.variables) {
				if (!variable.isStatic) {
					result.push(variable);
				}
			}


public class Cloner {

	private static function isVariableCloneable(variable:Variable, skipMetadataChecking:Boolean = true):Boolean {
		return !variable.isStatic && (skipMetadataChecking || variable.hasMetadata(MetadataName.CLONEABLE));
	}

	dolly_internal static function getCloneableFields(source:*):Array {
		const result:Array = [];

