diff --git a/Python/ceval.c b/Python/ceval.c
index 43a5c90..705ed41 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -440,6 +440,12 @@
     if (gil_created()) {
         int err = errno;
         take_gil(tstate);
+        /* _Py_Finalizing is protected by the GIL */
+        if (_Py_Finalizing && tstate != _Py_Finalizing) {
+            drop_gil(tstate);
+            PyThread_exit_thread();
+            assert(0);  /* unreachable */
+        }
         errno = err;
     }
 #endif
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index faaf54a..1e2dd58 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -90,6 +90,8 @@
 int Py_NoUserSiteDirectory = 0; /* for -s and site.py */
 int Py_UnbufferedStdioFlag = 0; /* Unbuffered binary std{in,out,err} */
 
+PyThreadState *_Py_Finalizing = NULL;
+
 /* PyModule_GetWarningsModule is no longer necessary as of 2.6
 since _warnings is builtin.  This API should not be used. */
 PyObject *
@@ -188,6 +190,7 @@
     if (initialized)
         return;
     initialized = 1;
+    _Py_Finalizing = NULL;
 
 #if defined(HAVE_LANGINFO_H) && defined(HAVE_SETLOCALE)
     /* Set up the LC_CTYPE locale, so we can obtain
@@ -388,15 +391,19 @@
      * the threads created via Threading.
      */
     call_py_exitfuncs();
-    initialized = 0;
-
-    /* Flush stdout+stderr */
-    flush_std_files();
 
     /* Get current thread state and interpreter pointer */
     tstate = PyThreadState_GET();
     interp = tstate->interp;
 
+    /* Remaining threads (e.g. daemon threads) will automatically exit
+       after taking the GIL (in PyEval_RestoreThread()). */
+    _Py_Finalizing = tstate;
+    initialized = 0;
+
+    /* Flush stdout+stderr */
+    flush_std_files();
+
     /* Disable signal handling */
     PyOS_FiniInterrupts();
 
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index ffc791c..6bc9d55 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -250,9 +250,9 @@
 PyThread_exit_thread(void)
 {
     dprintf(("PyThread_exit_thread called\n"));
-    if (!initialized) {
+    if (!initialized)
         exit(0);
-    }
+    pthread_exit(0);
 }
 
 #ifdef USE_SEMAPHORES
