Merged revisions 76573 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r76573 | antoine.pitrou | 2009-11-28 17:12:28 +0100 (sam., 28 nov. 2009) | 3 lines

  Issue #4486: When an exception has an explicit cause, do not print its implicit context too.
........
diff --git a/Lib/traceback.py b/Lib/traceback.py
index c0d8061..8d4e96e 100644
--- a/Lib/traceback.py
+++ b/Lib/traceback.py
@@ -120,13 +120,14 @@
     seen.add(exc)
     its = []
     cause = exc.__cause__
-    context = exc.__context__
     if cause is not None and cause not in seen:
         its.append(_iter_chain(cause, None, seen))
         its.append([(_cause_message, None)])
-    if context is not None and context is not cause and context not in seen:
-        its.append(_iter_chain(context, None, seen))
-        its.append([(_context_message, None)])
+    else:
+        context = exc.__context__
+        if context is not None and context not in seen:
+            its.append(_iter_chain(context, None, seen))
+            its.append([(_context_message, None)])
     its.append([(exc, custom_tb or exc.__traceback__)])
     # itertools.chain is in an extension module and may be unavailable
     for it in its: