diff --git a/Lib/trace.py b/Lib/trace.py
index 12e1b49..97491db 100644
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -52,7 +52,6 @@
 import os
 import re
 import sys
-import threading
 import time
 import token
 import tokenize
@@ -65,6 +64,22 @@
 except ImportError:
     import pickle
 
+try:
+    import threading
+except ImportError:
+    _settrace = sys.settrace
+
+    def _unsettrace():
+        sys.settrace(None)
+else:
+    def _settrace(func):
+        threading.settrace(func)
+        sys.settrace(func)
+
+    def _unsettrace():
+        sys.settrace(None)
+        threading.settrace(None)
+
 def usage(outfile):
     outfile.write("""Usage: %s [OPTIONS] <file> [ARGS]
 
@@ -501,14 +516,12 @@
         if globals is None: globals = {}
         if locals is None: locals = {}
         if not self.donothing:
-            threading.settrace(self.globaltrace)
-            sys.settrace(self.globaltrace)
+            _settrace(self.globaltrace)
         try:
             exec cmd in globals, locals
         finally:
             if not self.donothing:
-                sys.settrace(None)
-                threading.settrace(None)
+                _unsettrace()
 
     def runfunc(self, func, *args, **kw):
         result = None
