diff -r 70274d53c1dd Modules/readline.c --- a/Modules/readline.c Mon Apr 09 19:04:04 2012 -0400 +++ b/Modules/readline.c Fri Oct 26 14:12:33 2012 +0200 @@ -804,7 +804,7 @@ if (completer != NULL) { PyObject *r; #ifdef WITH_THREAD - PyGILState_STATE gilstate = PyGILState_Ensure(); + PyEval_RestoreThread(_PyOS_ReadlineTState); #endif rl_attempted_completion_over = 1; r = PyObject_CallFunction(completer, "si", text, state); @@ -826,7 +826,7 @@ Py_XDECREF(r); done: #ifdef WITH_THREAD - PyGILState_Release(gilstate); + PyEval_SaveThread(); #endif return result; }