diff --git a/Include/ceval.h b/Include/ceval.h
index 9bb145d..8d0ca9e 100644
--- a/Include/ceval.h
+++ b/Include/ceval.h
@@ -25,11 +25,13 @@
 PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
 PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
 
+struct _frame; /* Avoid including frameobject.h */
+
 PyAPI_FUNC(PyObject *) PyEval_GetBuiltins(void);
 PyAPI_FUNC(PyObject *) PyEval_GetGlobals(void);
 PyAPI_FUNC(PyObject *) PyEval_GetLocals(void);
 PyAPI_FUNC(PyObject *) PyEval_GetOwner(void);
-PyAPI_FUNC(PyObject *) PyEval_GetFrame(void);
+PyAPI_FUNC(struct _frame *) PyEval_GetFrame(void);
 PyAPI_FUNC(int) PyEval_GetRestricted(void);
 
 /* Look at the current frame's (if any) code's co_flags, and turn on
diff --git a/Include/pystate.h b/Include/pystate.h
index d4233bf..3e5b5b4 100644
--- a/Include/pystate.h
+++ b/Include/pystate.h
@@ -107,8 +107,10 @@
 PyAPI_FUNC(PyThreadState *) PyInterpreterState_ThreadHead(PyInterpreterState *);
 PyAPI_FUNC(PyThreadState *) PyThreadState_Next(PyThreadState *);
 
+typedef struct _frame *(*PyThreadFrameGetter)(PyThreadState *self_);
+
 /* hook for PyEval_GetFrame(), requested for Psyco */
-PyAPI_DATA(unaryfunc) _PyThreadState_GetFrame;
+PyAPI_DATA(PyThreadFrameGetter) _PyThreadState_GetFrame;
 
 #ifdef __cplusplus
 }
diff --git a/Misc/NEWS b/Misc/NEWS
index 7198541..2b12d6c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -326,6 +326,9 @@
 C API
 -----
 
+- PyEval_GetFrame() is now declared to return a PyFrameObject *
+  instead of a plain PyObject *.  (SF patch #686601.)
+
 - PyNumber_Check() now checks that the object has a nb_int or nb_float
   slot, rather than simply checking whether it has a non-NULL
   tp_as_number pointer.
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index 0f9574f..2224ec9 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -766,7 +766,7 @@
 	if (PyThread_get_thread_ident() != main_thread)
 		return 0;
 #endif
-	if (!(f = PyEval_GetFrame()))
+	if (!(f = (PyObject *)PyEval_GetFrame()))
 		f = Py_None;
 	
 	for (i = 1; i < NSIG; i++) {
diff --git a/Python/ceval.c b/Python/ceval.c
index 801f08d..9a5d039 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3077,7 +3077,7 @@
 PyObject *
 PyEval_GetBuiltins(void)
 {
-	PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame();
+	PyFrameObject *current_frame = PyEval_GetFrame();
 	if (current_frame == NULL)
 		return PyThreadState_Get()->interp->builtins;
 	else
@@ -3087,7 +3087,7 @@
 PyObject *
 PyEval_GetLocals(void)
 {
-	PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame();
+	PyFrameObject *current_frame = PyEval_GetFrame();
 	if (current_frame == NULL)
 		return NULL;
 	PyFrame_FastToLocals(current_frame);
@@ -3097,31 +3097,31 @@
 PyObject *
 PyEval_GetGlobals(void)
 {
-	PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame();
+	PyFrameObject *current_frame = PyEval_GetFrame();
 	if (current_frame == NULL)
 		return NULL;
 	else
 		return current_frame->f_globals;
 }
 
-PyObject *
+PyFrameObject *
 PyEval_GetFrame(void)
 {
 	PyThreadState *tstate = PyThreadState_Get();
-	return _PyThreadState_GetFrame((PyObject *)tstate);
+	return _PyThreadState_GetFrame(tstate);
 }
 
 int
 PyEval_GetRestricted(void)
 {
-	PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame();
+	PyFrameObject *current_frame = PyEval_GetFrame();
 	return current_frame == NULL ? 0 : current_frame->f_restricted;
 }
 
 int
 PyEval_MergeCompilerFlags(PyCompilerFlags *cf)
 {
-	PyFrameObject *current_frame = (PyFrameObject *)PyEval_GetFrame();
+	PyFrameObject *current_frame = PyEval_GetFrame();
 	int result = cf->cf_flags != 0;
 
 	if (current_frame != NULL) {
diff --git a/Python/pystate.c b/Python/pystate.c
index 707e43e..e200ece 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -35,7 +35,7 @@
 static PyInterpreterState *interp_head = NULL;
 
 PyThreadState *_PyThreadState_Current = NULL;
-unaryfunc _PyThreadState_GetFrame = NULL;
+PyThreadFrameGetter _PyThreadState_GetFrame = NULL;
 
 
 PyInterpreterState *
@@ -126,7 +126,7 @@
 {
 	PyThreadState *tstate = PyMem_NEW(PyThreadState, 1);
 	if (_PyThreadState_GetFrame == NULL)
-		_PyThreadState_GetFrame = (unaryfunc)threadstate_getframe;
+		_PyThreadState_GetFrame = threadstate_getframe;
 
 	if (tstate != NULL) {
 		tstate->interp = interp;
