diff --git a/test/912-classes/expected.txt b/test/912-classes/expected.txt
index 4976553..d0b77a4 100644
--- a/test/912-classes/expected.txt
+++ b/test/912-classes/expected.txt
@@ -86,8 +86,6 @@
 C, true
 Load: LC; on main
 Prepare: LC; on main (cur=main)
-Load: LMain$1; on main
-Prepare: LMain$1; on main (cur=main)
 C, true
 Load: LA; on TestRunner
 Prepare: LA; on TestRunner (cur=TestRunner)
diff --git a/test/912-classes/src/Main.java b/test/912-classes/src/Main.java
index 859f80c..62dc9f9 100644
--- a/test/912-classes/src/Main.java
+++ b/test/912-classes/src/Main.java
@@ -219,6 +219,19 @@
     }
     final ClassLoader boot = cl;
 
+    Runnable r = new Runnable() {
+      @Override
+      public void run() {
+        try {
+          ClassLoader cl6 = create(boot, DEX1, DEX2);
+          System.out.println("C, true");
+          Class.forName("C", true, cl6);
+        } catch (Exception e) {
+          throw new RuntimeException(e);
+        }
+      }
+    };
+
     enableClassLoadEvents(true);
 
     ClassLoader cl1 = create(boot, DEX1, DEX2);
@@ -247,18 +260,6 @@
     System.out.println("C, true");
     Class.forName("C", true, cl5);
 
-    Runnable r = new Runnable() {
-      @Override
-      public void run() {
-        try {
-          ClassLoader cl6 = create(boot, DEX1, DEX2);
-          System.out.println("C, true");
-          Class.forName("C", true, cl6);
-        } catch (Exception e) {
-          throw new RuntimeException(e);
-        }
-      }
-    };
     Thread t = new Thread(r, "TestRunner");
     t.start();
     t.join();
