diff --git a/Lib/unittest/result.py b/Lib/unittest/result.py
index 92b1f91..1dbd04c 100644
--- a/Lib/unittest/result.py
+++ b/Lib/unittest/result.py
@@ -153,9 +153,7 @@
             length = self._count_relevant_tb_levels(tb)
             msgLines = traceback.format_exception(exctype, value, tb, length)
         else:
-            chain = exctype is not None
-            msgLines = traceback.format_exception(exctype, value, tb,
-                                                  chain=chain)
+            msgLines = traceback.format_exception(exctype, value, tb)
 
         if self.buffer:
             output = sys.stdout.getvalue()
diff --git a/Lib/unittest/test/test_result.py b/Lib/unittest/test/test_result.py
index c703032..64798a1 100644
--- a/Lib/unittest/test/test_result.py
+++ b/Lib/unittest/test/test_result.py
@@ -4,6 +4,7 @@
 
 from test import support
 
+import traceback
 import unittest
 
 
@@ -361,6 +362,15 @@
         runner.run(Test('testFoo'))
 
 
+class MockTraceback(object):
+    @staticmethod
+    def format_exception(*_):
+        return ['A traceback']
+
+def restore_traceback():
+    unittest.result.traceback = traceback
+
+
 class TestOutputBuffering(unittest.TestCase):
 
     def setUp(self):
@@ -441,6 +451,9 @@
         return result
 
     def testBufferOutputAddErrorOrFailure(self):
+        unittest.result.traceback = MockTraceback
+        self.addCleanup(restore_traceback)
+
         for message_attr, add_attr, include_error in [
             ('errors', 'addError', True),
             ('failures', 'addFailure', False),
@@ -476,7 +489,8 @@
                 Stderr:
                 bar
             """)
-            expectedFullMessage = 'NoneType\n%s%s' % (expectedOutMessage, expectedErrMessage)
+
+            expectedFullMessage = 'A traceback%s%s' % (expectedOutMessage, expectedErrMessage)
 
             self.assertIs(test, self)
             self.assertEqual(result._original_stdout.getvalue(), expectedOutMessage)
