Move exception finalisation later in the shutdown process - this
fixes the crash seen in bug #1165761
diff --git a/Misc/NEWS b/Misc/NEWS
index 9a63f21..976e019 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -7,9 +7,14 @@
 What's New in Python 2.5 alpha 1?
 =================================
 
+*Release date: XX-XXX-2006*
+
 Core and builtins
 -----------------
 
+- Move exception finalisation later in the shutdown process - this 
+  fixes the crash seen in bug #1165761
+
 - Added two new builtins, any() and all().
 
 - Defining a class with empty parentheses is now allowed
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 6d69165..f629709 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -392,13 +392,6 @@
 		_Py_PrintReferences(stderr);
 #endif /* Py_TRACE_REFS */
 
-	/* Now we decref the exception classes.  After this point nothing
-	   can raise an exception.  That's okay, because each Fini() method
-	   below has been checked to make sure no exceptions are ever
-	   raised.
-	*/
-	_PyExc_Fini();
-
 	/* Cleanup auto-thread-state */
 #ifdef WITH_THREAD
 	_PyGILState_Fini();
@@ -407,6 +400,14 @@
 	/* Clear interpreter state */
 	PyInterpreterState_Clear(interp);
 
+	/* Now we decref the exception classes.  After this point nothing
+	   can raise an exception.  That's okay, because each Fini() method
+	   below has been checked to make sure no exceptions are ever
+	   raised.
+	*/
+
+	_PyExc_Fini();
+
 	/* Delete current thread */
 	PyThreadState_Swap(NULL);
 	PyInterpreterState_Delete(interp);