diff --git a/tools/packaging/test262.py b/tools/packaging/test262.py
index 26f3f8b52630bc8fe052514a7ae48a92ebd6b282..1192005fc9674c901933b312c3439e51efb21429 100755
--- a/tools/packaging/test262.py
+++ b/tools/packaging/test262.py
@@ -583,7 +583,6 @@ class TestSuite(object):
           SkipCaseElement.append(SkipElement)
           TestSuiteElement.append(SkipCaseElement)
 
-    threads = []
     if workers_count > 1:
       pool_sem = threading.Semaphore(workers_count)
       log_lock = threading.Lock()
@@ -614,13 +613,11 @@ class TestSuite(object):
         exec_case()
       else:
         pool_sem.acquire()
-        thread = threading.Thread(target=exec_case)
-        threads.append(thread)
-        thread.start()
+        threading.Thread(target=exec_case).start()
         pool_sem.release()
 
-    for thread in threads:
-      thread.join()
+    if workers_count > 1:
+      log_lock.acquire()
 
     if print_summary:
       self.PrintSummary(progress, logname)
@@ -631,6 +628,9 @@ class TestSuite(object):
         print "Use --full-summary to see output from failed tests"
     print
 
+    if workers_count > 1:
+      log_lock.release()
+
     return progress.failed
 
   def WriteLog(self, result):