diff -ru Python-3.5.1/Modules/signalmodule.c Python-3.5.1-fixed//Modules/signalmodule.c --- Python-3.5.1/Modules/signalmodule.c 2015-12-07 02:39:10.000000000 +0100 +++ Python-3.5.1-fixed//Modules/signalmodule.c 2017-04-12 18:51:34.506672570 +0200 @@ -441,12 +441,13 @@ } else func = signal_handler; + /* Check for pending signals before changing signal handler */ + if (PyErr_CheckSignals()) return NULL; if (PyOS_setsig(signalnum, func) == SIG_ERR) { PyErr_SetFromErrno(PyExc_OSError); return NULL; } old_handler = Handlers[signalnum].func; - Handlers[signalnum].tripped = 0; Py_INCREF(handler); Handlers[signalnum].func = handler; if (old_handler != NULL) Only in Python-3.5.1-fixed//Modules: signalmodule.c.orig Only in Python-3.5.1-fixed//Modules: signalmodule.c.rej Only in Python-3.5.1/Modules: .signalmodule.c.swp