diff --git a/Misc/NEWS b/Misc/NEWS
index aedd5b6..ae3c4ef 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -4,6 +4,40 @@
 
 (editors: check NEWS.help for information about editing NEWS using ReST.)
 
+What's New in Python 2.3 release candidate 2?
+=============================================
+
+*Release date: DD-MMM-YYYY*
+
+Core and builtins
+-----------------
+
+Extension modules
+-----------------
+
+- A longstanding bug in the parser module's initialization could cause
+  fatal internal refcount confusion when the module got initialized more
+  than once.  This has been fixed.
+
+Library
+-------
+
+Tools/Demos
+-----------
+
+Build
+-----
+
+C API
+-----
+
+Windows
+-------
+
+Mac
+---
+
+
 What's New in Python 2.3 release candidate 1?
 =============================================
 
@@ -26,7 +60,7 @@
 
 - A warning about assignments to module attributes that shadow
   builtins, present in earlier releases of 2.3, has been removed.
-  
+
 - It is not possible to create subclasses of builtin types like str
   and tuple that define an itemsize.  Earlier releases of Python 2.3
   allowed this by mistake, leading to crashes and other problems.
@@ -58,7 +92,7 @@
 - The cPickle Pickler garbage collection support was fixed to traverse
   the find_class attribute, if present.
 
-- There are several fixes for the bsddb3 wrapper module.  
+- There are several fixes for the bsddb3 wrapper module.
 
   bsddb3 no longer crashes if an environment is closed before a cursor
   (SF bug 763298).
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index 91f15e3..4a795ed 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -106,7 +106,7 @@
             }
             (void) addelem(v, i+1, w);
         }
-	
+
         if (TYPE(n) == encoding_decl)
             (void) addelem(v, i+1, PyString_FromString(STR(n)));
         return (v);
@@ -2904,11 +2904,19 @@
     if (parser_error == 0)
         parser_error = PyErr_NewException("parser.ParserError", NULL, NULL);
 
-    if ((parser_error == 0)
-        || (PyModule_AddObject(module, "ParserError", parser_error) != 0)) {
+    if (parser_error == 0)
         /* caller will check PyErr_Occurred() */
         return;
-    }
+    /* CAUTION:  The code next used to skip bumping the refcount on
+     * parser_error.  That's a disaster if initparser() gets called more
+     * than once.  By incref'ing, we ensure that each module dict that
+     * gets created owns its reference to the shared parser_error object,
+     * and the file static parser_error vrbl owns a reference too.
+     */
+    Py_INCREF(parser_error);
+    if (PyModule_AddObject(module, "ParserError", parser_error) != 0)
+        return;
+
     Py_INCREF(&PyST_Type);
     PyModule_AddObject(module, "ASTType", (PyObject*)&PyST_Type);
     Py_INCREF(&PyST_Type);
