diff --git a/Include/ceval.h b/Include/ceval.h
index 7dfe2b2..e558594 100644
--- a/Include/ceval.h
+++ b/Include/ceval.h
@@ -23,8 +23,8 @@
 #ifndef Py_LIMITED_API
 PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
 PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
-PyAPI_FUNC(void) PyEval_SetCoroutineWrapper(PyObject *wrapper);
-PyAPI_FUNC(PyObject *) PyEval_GetCoroutineWrapper(void);
+PyAPI_FUNC(void) _PyEval_SetCoroutineWrapper(PyObject *wrapper);
+PyAPI_FUNC(PyObject *) _PyEval_GetCoroutineWrapper(void);
 #endif
 
 struct _frame; /* Avoid including frameobject.h */
diff --git a/Python/ceval.c b/Python/ceval.c
index 06772b1..bb2c0b9 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3936,7 +3936,7 @@
             return NULL;
 
         if (co->co_flags & (CO_COROUTINE | CO_ITERABLE_COROUTINE)) {
-            coroutine_wrapper = PyEval_GetCoroutineWrapper();
+            coroutine_wrapper = _PyEval_GetCoroutineWrapper();
             if (coroutine_wrapper != NULL) {
                 PyObject *wrapped =
                             PyObject_CallFunction(coroutine_wrapper, "N", gen);
@@ -4390,7 +4390,7 @@
 }
 
 void
-PyEval_SetCoroutineWrapper(PyObject *wrapper)
+_PyEval_SetCoroutineWrapper(PyObject *wrapper)
 {
     PyThreadState *tstate = PyThreadState_GET();
 
@@ -4401,7 +4401,7 @@
 }
 
 PyObject *
-PyEval_GetCoroutineWrapper(void)
+_PyEval_GetCoroutineWrapper(void)
 {
     PyThreadState *tstate = PyThreadState_GET();
     return tstate->coroutine_wrapper;
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 149b76e..f600baf 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -655,10 +655,10 @@
                          Py_TYPE(wrapper)->tp_name);
             return NULL;
         }
-        PyEval_SetCoroutineWrapper(wrapper);
+        _PyEval_SetCoroutineWrapper(wrapper);
     }
     else {
-        PyEval_SetCoroutineWrapper(NULL);
+        _PyEval_SetCoroutineWrapper(NULL);
     }
     Py_RETURN_NONE;
 }
@@ -672,7 +672,7 @@
 static PyObject *
 sys_get_coroutine_wrapper(PyObject *self, PyObject *args)
 {
-    PyObject *wrapper = PyEval_GetCoroutineWrapper();
+    PyObject *wrapper = _PyEval_GetCoroutineWrapper();
     if (wrapper == NULL) {
         wrapper = Py_None;
     }
