diff --git a/Lib/concurrent/futures/process.py b/Lib/concurrent/futures/process.py
index 7647198..9904db7 100644
--- a/Lib/concurrent/futures/process.py
+++ b/Lib/concurrent/futures/process.py
@@ -56,7 +56,7 @@
 from functools import partial
 import itertools
 import sys
-import traceback
+from traceback import format_exception
 
 
 _threads_wakeups = weakref.WeakKeyDictionary()
@@ -123,8 +123,7 @@ def __str__(self):
 
 class _ExceptionWithTraceback:
     def __init__(self, exc, tb):
-        tb = traceback.format_exception(type(exc), exc, tb)
-        tb = ''.join(tb)
+        tb = ''.join(format_exception(type(exc), exc, tb))
         self.exc = exc
         self.tb = '\n"""\n%s"""' % tb
     def __reduce__(self):
@@ -166,7 +165,7 @@ def __init__(self, max_size=0, *, ctx, pending_work_items, shutdown_lock,
 
     def _on_queue_feeder_error(self, e, obj):
         if isinstance(obj, _CallItem):
-            tb = traceback.format_exception(type(e), e, e.__traceback__)
+            tb = format_exception(type(e), e, e.__traceback__)
             e.__cause__ = _RemoteTraceback('\n"""\n{}"""'.format(''.join(tb)))
             work_item = self.pending_work_items.pop(obj.work_id, None)
             with self.shutdown_lock:
@@ -384,7 +383,7 @@ def wait_result_broken_or_wakeup(self):
                 result_item = result_reader.recv()
                 is_broken = False
             except BaseException as e:
-                cause = traceback.format_exception(type(e), e, e.__traceback__)
+                cause = format_exception(type(e), e, e.__traceback__)
 
         elif wakeup_reader in ready:
             is_broken = False
