diff --git a/Objects/genobject.c b/Objects/genobject.c
index 08d30bf..f125847 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -396,13 +396,30 @@
 
     if (PyErr_ExceptionMatches(PyExc_StopIteration)) {
         PyErr_Fetch(&et, &ev, &tb);
+        if (ev) {
+            /* exception will usually be normalised already */
+            if (Py_TYPE(ev) == (PyTypeObject *) et
+                || PyObject_IsInstance(ev, PyExc_StopIteration)) {
+                value = ((PyStopIterationObject *)ev)->value;
+                Py_INCREF(value);
+                Py_DECREF(ev);
+            } else if (et == PyExc_StopIteration) {
+                /* avoid normalisation and take ev as value */
+                value = ev;
+            } else {
+                /* normalisation required */
+                PyErr_NormalizeException(&et, &ev, &tb);
+                if (!PyObject_IsInstance(ev, PyExc_StopIteration)) {
+                    PyErr_Restore(et, ev, tb);
+                    return -1;
+                }
+                value = ((PyStopIterationObject *)ev)->value;
+                Py_INCREF(value);
+                Py_DECREF(ev);
+            }
+        }
         Py_XDECREF(et);
         Py_XDECREF(tb);
-        if (ev) {
-            value = ((PyStopIterationObject *)ev)->value;
-            Py_INCREF(value);
-            Py_DECREF(ev);
-        }
     } else if (PyErr_Occurred()) {
         return -1;
     }
