Add traceback.format_exc().
diff --git a/Lib/threading.py b/Lib/threading.py
index 81a2693..c5d5af3 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -8,9 +8,8 @@
     del _sys.modules[__name__]
     raise
 
-from StringIO import StringIO as _StringIO
 from time import time as _time, sleep as _sleep
-from traceback import print_exc as _print_exc
+from traceback import format_exc as _format_exc
 
 # Rename some stuff so "from threading import *" is safe
 __all__ = ['activeCount', 'Condition', 'currentThread', 'enumerate', 'Event',
@@ -440,10 +439,8 @@
             except:
                 if __debug__:
                     self._note("%s.__bootstrap(): unhandled exception", self)
-                s = _StringIO()
-                _print_exc(file=s)
                 _sys.stderr.write("Exception in thread %s:\n%s\n" %
-                                 (self.getName(), s.getvalue()))
+                                  (self.getName(), _format_exc()))
             else:
                 if __debug__:
                     self._note("%s.__bootstrap(): normal return", self)