logging's atexit hook now runs even if the rest of the module has
already been cleaned up.
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index e8852f3..dc3400d 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -1337,14 +1337,14 @@
     """
     root.manager.disable = level
 
-def shutdown():
+def shutdown(handlerList=_handlerList):
     """
     Perform any cleanup actions in the logging system (e.g. flushing
     buffers).
 
     Should be called at application exit.
     """
-    for h in _handlerList[:]: # was _handlers.keys():
+    for h in handlerList[:]:
         #errors might occur, for example, if files are locked
         #we just ignore them if raiseExceptions is not set
         try:
diff --git a/Misc/NEWS b/Misc/NEWS
index f2fc704..26047f6 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -38,6 +38,9 @@
 Library
 -------
 
+- logging's atexit hook now runs even if the rest of the module has
+  already been cleaned up.
+
 - Bug #1112549, DoS attack on cgi.FieldStorage.
 
 - Bug #1531405, format_exception no longer raises an exception if