 				}
 			}
 			for each(accessor in type.accessors) {
-				if (accessor.isReadable() && accessor.isWriteable() && !accessor.isStatic) {
+				if (isAccessorCloneable(accessor)) {
 					result.push(accessor);
 				}
 			}

		var accessor:Accessor;

		const isClassCloneable:Boolean = type.hasMetadata(MetadataName.CLONEABLE);

		if (isClassCloneable) {
			for each(variable in type.variables) {
				if (isVariableCloneable(variable)) {

					}
				} else if (metadataContainer is Accessor) {
					accessor = metadataContainer as Accessor;
					if (isAccessorCloneable(accessor, false)) {
						result.push(accessor);
					}
				}
