diff -r 1addc5d2c246 Objects/genobject.c --- a/Objects/genobject.c Tue Nov 22 23:04:39 2016 +0100 +++ b/Objects/genobject.c Thu Nov 24 00:06:47 2016 +0100 @@ -354,8 +354,15 @@ PyObject * if (f && f->f_stacktop) { PyObject *bytecode = f->f_code->co_code; unsigned char *code = (unsigned char *)PyBytes_AS_STRING(bytecode); + int next_instr; - if (code[f->f_lasti + sizeof(_Py_CODEUNIT)] != YIELD_FROM) + if (f->f_lasti >= 0) { + next_instr = f->f_lasti + sizeof(_Py_CODEUNIT); + } + else { + next_instr = 0; + } + if (code[next_instr] != YIELD_FROM) return NULL; yf = f->f_stacktop[-1]; Py_INCREF(yf);