Fix wrapping into StopIteration of return values in generators and coroutines (#644) (#647)
diff --git a/Objects/genobject.c b/Objects/genobject.c
index 2680ab0..1c29e29 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -575,8 +575,7 @@
PyObject *e;
if (value == NULL ||
- (!PyTuple_Check(value) &&
- !PyObject_TypeCheck(value, (PyTypeObject *) PyExc_StopIteration)))
+ (!PyTuple_Check(value) && !PyExceptionInstance_Check(value)))
{
/* Delay exception instantiation if we can */
PyErr_SetObject(PyExc_StopIteration, value);