diff --git a/royaleunit-ant-tasks/src/main/java/org/apache/royale/test/ant/launcher/commands/playwright/DefaultPlaywrightCommand.java b/royaleunit-ant-tasks/src/main/java/org/apache/royale/test/ant/launcher/commands/playwright/DefaultPlaywrightCommand.java
index c591f34..05b5f2b 100644
--- a/royaleunit-ant-tasks/src/main/java/org/apache/royale/test/ant/launcher/commands/playwright/DefaultPlaywrightCommand.java
+++ b/royaleunit-ant-tasks/src/main/java/org/apache/royale/test/ant/launcher/commands/playwright/DefaultPlaywrightCommand.java
@@ -20,13 +20,10 @@
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Vector;
 import java.util.function.Consumer;
 
 import org.apache.royale.test.ant.LoggingUtil;
-import org.apache.tools.ant.AntClassLoader;
 import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.Execute;
 
 import com.microsoft.playwright.Browser;
 import com.microsoft.playwright.BrowserType;
@@ -82,10 +79,6 @@
     
     public void prepare()
     {
-        // must also call resetThreadContextLoader() after test run completes.
-        // that happens in stop() method of DefaultPlaywrightContext
-        ((AntClassLoader)getClass().getClassLoader()).setThreadContextLoader();
-
         CreateOptions createOptions = new CreateOptions();
         createOptions.setEnv(getEnvironmentMap());
         playwright = PlaywrightImpl.create(createOptions);
diff --git a/royaleunit-ant-tasks/src/main/java/org/apache/royale/test/ant/launcher/contexts/DefaultPlaywrightContext.java b/royaleunit-ant-tasks/src/main/java/org/apache/royale/test/ant/launcher/contexts/DefaultPlaywrightContext.java
index 979de56..34e35f2 100644
--- a/royaleunit-ant-tasks/src/main/java/org/apache/royale/test/ant/launcher/contexts/DefaultPlaywrightContext.java
+++ b/royaleunit-ant-tasks/src/main/java/org/apache/royale/test/ant/launcher/contexts/DefaultPlaywrightContext.java
@@ -43,6 +43,9 @@
 
     public void start() throws IOException
     {
+        // calls resetThreadContextLoader() in stop() after test run completes
+        ((AntClassLoader)getClass().getClassLoader()).setThreadContextLoader();
+       
         //prep anything the command needs to run
         command.prepare();
     }
@@ -52,8 +55,7 @@
         //destroy the playwright instance, if it exists
         if(playwright != null)
         {
-            // setThreadContextLoader() was called in DefaultPlaywrightCommand,
-            // and this is the matching call to resetThreadContextLoader()
+            // setThreadContextLoader() was called in start()
             ((AntClassLoader)getClass().getClassLoader()).resetThreadContextLoader();
 
             playwright.close();
