diff --git a/Include/Python.h b/Include/Python.h
index 0d9a797..a2be68f 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -99,6 +99,7 @@
 #include "sliceobject.h"
 #include "cellobject.h"
 #include "iterobject.h"
+#include "genobject.h"
 #include "descrobject.h"
 #include "weakrefobject.h"
 
diff --git a/Include/ceval.h b/Include/ceval.h
index ae6de3a..3d1f6fd 100644
--- a/Include/ceval.h
+++ b/Include/ceval.h
@@ -64,7 +64,7 @@
 PyAPI_FUNC(char *) PyEval_GetFuncDesc(PyObject *);
 
 PyAPI_FUNC(PyObject *) PyEval_GetCallStats(PyObject *);
-PyAPI_FUNC(PyObject *) PyEval_EvaluateFrame(PyObject *);
+PyAPI_FUNC(PyObject *) PyEval_EvalFrame(struct _frame *);
 
 /* this used to be handled on a per-thread basis - now just two globals */
 PyAPI_DATA(volatile int) _Py_Ticker;
diff --git a/Include/genobject.h b/Include/genobject.h
index c9b7c19..f4226ed 100644
--- a/Include/genobject.h
+++ b/Include/genobject.h
@@ -7,11 +7,13 @@
 extern "C" {
 #endif
 
+struct _frame; /* Avoid including frameobject.h */
+
 typedef struct {
 	PyObject_HEAD
 	/* The gi_ prefix is intended to remind of generator-iterator. */
 
-	PyFrameObject *gi_frame;
+	struct _frame *gi_frame;
 
 	/* True if generator is being executed. */
 	int gi_running;
@@ -25,7 +27,7 @@
 #define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type)
 #define PyGen_CheckExact(op) ((op)->ob_type == &PyGen_Type)
 
-PyAPI_FUNC(PyObject *) PyGen_New(PyFrameObject *);
+PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *);
 
 #ifdef __cplusplus
 }
diff --git a/Objects/genobject.c b/Objects/genobject.c
index a604bcb..66a5106 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -44,7 +44,7 @@
 	f->f_back = tstate->frame;
 
 	gen->gi_running = 1;
-	result = PyEval_EvaluateFrame((PyObject *)f);
+	result = PyEval_EvalFrame(f);
 	gen->gi_running = 0;
 
 	/* Don't keep the reference to f_back any longer than necessary.  It
diff --git a/Python/ceval.c b/Python/ceval.c
index e233099..ca7cea8 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -10,7 +10,6 @@
 
 #include "compile.h"
 #include "frameobject.h"
-#include "genobject.h"
 #include "eval.h"
 #include "opcode.h"
 #include "structmember.h"
@@ -49,7 +48,6 @@
 typedef PyObject *(*callproc)(PyObject *, PyObject *, PyObject *);
 
 /* Forward declarations */
-static PyObject *eval_frame(PyFrameObject *);
 #ifdef WITH_TSC
 static PyObject *call_function(PyObject ***, int, uint64*, uint64*);
 #else
@@ -458,8 +456,8 @@
 
 /* Interpreter main loop */
 
-static PyObject *
-eval_frame(PyFrameObject *f)
+PyObject *
+PyEval_EvalFrame(PyFrameObject *f)
 {
 #ifdef DXPAIRS
 	int lastopcode = 0;
@@ -2455,8 +2453,8 @@
 }
 
 /* this is gonna seem *real weird*, but if you put some other code between
-   eval_frame() and PyEval_EvalCodeEx() you will need to adjust the test in
-   the if statement in Misc/gdbinit:ppystack */
+   PyEval_EvalFrame() and PyEval_EvalCodeEx() you will need to adjust
+	the test in the if statement in Misc/gdbinit:ppystack */
 
 PyObject *
 PyEval_EvalCodeEx(PyCodeObject *co, PyObject *globals, PyObject *locals,
@@ -2684,7 +2682,7 @@
 		return PyGen_New(f);
 	}
 
-        retval = eval_frame(f);
+        retval = PyEval_EvalFrame(f);
 
   fail: /* Jump here from prelude on failure */
 
@@ -3415,12 +3413,6 @@
 	}
 }
 
-PyObject *
-PyEval_EvaluateFrame(PyObject *fo)
-{
-	return eval_frame((PyFrameObject *)fo);
-}
-
 #define EXT_POP(STACK_POINTER) (*--(STACK_POINTER))
 
 static void
@@ -3597,7 +3589,7 @@
 			Py_INCREF(*stack);
 			fastlocals[i] = *stack++;
 		}
-		retval = eval_frame(f);
+		retval = PyEval_EvalFrame(f);
 		assert(tstate != NULL);
 		++tstate->recursion_depth;
 		Py_DECREF(f);
