 	}
 
 	[Test]
+	public function testCopyClassLevelCopyableSubclass():void {
+		const copy:ClassLevelCopyableSubclass = Copier.copy(classLevelCopyableSubclass);
+		assertNotNull(copy);
+		assertNotNull(copy.property1);
+		assertEquals(copy.property1, classLevelCopyableSubclass.property1);
+		assertNotNull(copy.property2);
+		assertEquals(copy.property2, classLevelCopyableSubclass.property2);
+		assertNotNull(copy.property3);
+		assertEquals(copy.property3, classLevelCopyableSubclass.property3);
+		assertNotNull(copy.property4);
+		assertEquals(copy.property4, classLevelCopyableSubclass.property4);
+		assertNotNull(copy.property5);
+		assertEquals(copy.property5, classLevelCopyableSubclass.property5);
+		assertNotNull(copy.writableField);
+		assertEquals(copy.writableField, classLevelCopyableSubclass.writableField);
+		assertNotNull(copy.writableField2);
+		assertEquals(copy.writableField2, classLevelCopyableSubclass.writableField2);
+	}
+
+	[Test]
 	public function testCopyClassLevelCopyableCloneable():void {
 		const copy:ClassLevelCopyableCloneable = Copier.copy(classLevelCopyableCloneable);
 		assertNotNull(copy);

		classLevelCopyable = null;
		classLevelCopyableType = null;

		classLevelCopyableCloneable = null;
		classLevelCopyableCloneableType = null;



	private var classLevelCopyable:ClassLevelCopyable;
	private var classLevelCopyableType:Type;

	private var classLevelCopyableSubclass:ClassLevelCopyableSubclass;
	private var classLevelCopyableSubclassType:Type;

	private var classLevelCopyableCloneable:ClassLevelCopyableCloneable;
	private var classLevelCopyableCloneableType:Type;
