diff --git a/Include/ceval.h b/Include/ceval.h
index 98e873d..11283c0 100644
--- a/Include/ceval.h
+++ b/Include/ceval.h
@@ -192,6 +192,9 @@
 
 PyAPI_FUNC(int)  PyEval_ThreadsInitialized(void);
 PyAPI_FUNC(void) PyEval_InitThreads(void);
+#ifndef Py_LIMITED_API
+PyAPI_FUNC(void) _PyEval_FiniThreads(void);
+#endif /* !Py_LIMITED_API */
 PyAPI_FUNC(void) PyEval_AcquireLock(void) Py_DEPRECATED(3.2);
 PyAPI_FUNC(void) PyEval_ReleaseLock(void) /* Py_DEPRECATED(3.2) */;
 PyAPI_FUNC(void) PyEval_AcquireThread(PyThreadState *tstate);
diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h
index ae3d832..0bb19f1 100644
--- a/Include/internal/pycore_ceval.h
+++ b/Include/internal/pycore_ceval.h
@@ -54,9 +54,6 @@
 
 PyAPI_FUNC(void) _PyEval_Initialize(struct _ceval_runtime_state *);
 
-PyAPI_FUNC(void) _PyEval_FiniThreads(void);
-PyAPI_FUNC(void) _PyEval_FiniThreads2(void);
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/Modules/main.c b/Modules/main.c
index f77bbd2..68f0b99 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -1,7 +1,6 @@
 /* Python interpreter main program */
 
 #include "Python.h"
-#include "pycore_ceval.h"   /* _PyEval_FiniThreads2() */
 #include "pycore_coreconfig.h"
 #include "pycore_pylifecycle.h"
 #include "pycore_pymem.h"
@@ -526,15 +525,15 @@
 
 /* --- pymain_main() ---------------------------------------------- */
 
-/* Free global variables which cannot be freed in Py_Finalize():
-   configuration options set before Py_Initialize() which should
-   remain valid after Py_Finalize(), since
-   Py_Initialize()-Py_Finalize() can be called multiple times. */
 static void
 pymain_free(void)
 {
     _PyImport_Fini2();
-    _PyEval_FiniThreads2();
+
+    /* Free global variables which cannot be freed in Py_Finalize():
+       configuration options set before Py_Initialize() which should
+       remain valid after Py_Finalize(), since
+       Py_Initialize()-Py_Finalize() can be called multiple times. */
     _PyPathConfig_ClearGlobal();
     _Py_ClearStandardStreamEncoding();
     _Py_ClearArgcArgv();
diff --git a/Python/ceval.c b/Python/ceval.c
index 5480fba..ccd0427 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -188,26 +188,20 @@
     }
 }
 
-
 void
 _PyEval_FiniThreads(void)
 {
-    if (_PyRuntime.ceval.pending.lock != NULL) {
-        PyThread_free_lock(_PyRuntime.ceval.pending.lock);
-        _PyRuntime.ceval.pending.lock = NULL;
-    }
-}
-
-
-void
-_PyEval_FiniThreads2(void)
-{
     if (!gil_created()) {
         return;
     }
 
     destroy_gil();
     assert(!gil_created());
+
+    if (_PyRuntime.ceval.pending.lock != NULL) {
+        PyThread_free_lock(_PyRuntime.ceval.pending.lock);
+        _PyRuntime.ceval.pending.lock = NULL;
+    }
 }
 
 static inline void
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 0836e18..d93fe06 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -4,9 +4,8 @@
 
 #include "Python-ast.h"
 #undef Yield   /* undefine macro conflicting with <winbase.h> */
-#include "pycore_ceval.h"   /* _PyEval_FiniThreads() */
-#include "pycore_context.h"
 #include "pycore_coreconfig.h"
+#include "pycore_context.h"
 #include "pycore_fileutils.h"
 #include "pycore_hamt.h"
 #include "pycore_pathconfig.h"
@@ -556,11 +555,12 @@
         return _Py_INIT_ERR("can't make first thread");
     (void) PyThreadState_Swap(tstate);
 
-    /* Destroying the GIL in Py_FinalizeEx might fail when it is being
-       referenced from another running thread (see bpo-9901).
+    /* We can't call _PyEval_FiniThreads() in Py_FinalizeEx because
+       destroying the GIL might fail when it is being referenced from
+       another running thread (see issue #9901).
        Instead we destroy the previously created GIL here, which ensures
        that we can call Py_Initialize / Py_FinalizeEx multiple times. */
-    _PyEval_FiniThreads2();
+    _PyEval_FiniThreads();
 
     /* Auto-thread-state API */
     _PyGILState_Init(runtime, interp, tstate);
@@ -1357,7 +1357,6 @@
 
     call_ll_exitfuncs(runtime);
 
-    _PyEval_FiniThreads();
     _PyRuntime_Finalize();
     return status;
 }
