diff -r 60f5091cbfbf Objects/genobject.c --- a/Objects/genobject.c Sun May 31 11:28:57 2015 -0400 +++ b/Objects/genobject.c Fri Jun 12 07:32:23 2015 +0200 @@ -465,7 +465,16 @@ Py_DECREF(ev); } else if (et == PyExc_StopIteration) { /* avoid normalisation and take ev as value */ - value = ev; + if (PyTuple_Check(ev)) { + /* argument tuple, see PyErr_NormalizeException() */ + if (PyTuple_GET_SIZE(ev) > 0) { + value = PyTuple_GET_ITEM(ev, 0); + Py_INCREF(value); + } + Py_DECREF(ev); + } else { + value = ev; + } } else { /* normalisation required */ PyErr_NormalizeException(&et, &ev, &tb);