diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index 980fb28..b5fddd0 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -3876,7 +3876,7 @@
 /* Initialization function for the module (*must* be called initcPickle) */
 void
 initcPickle() {
-    PyObject *m, *d;
+    PyObject *m, *d, *v;
     char *rev="$Revision$";
     PyObject *format_version;
     PyObject *compatible_formats;
@@ -3893,7 +3893,8 @@
     /* Add some symbolic constants to the module */
     d = PyModule_GetDict(m);
     PyDict_SetItemString(d,"__version__",
-			 PyString_FromStringAndSize(rev+11,strlen(rev+11)-2));
+		     v = PyString_FromStringAndSize(rev+11,strlen(rev+11)-2));
+    Py_XDECREF(v);
 
 #ifdef FORMAT_1_3
     format_version = PyString_FromString("1.3");
@@ -3905,6 +3906,8 @@
 
     PyDict_SetItemString(d, "format_version", format_version);
     PyDict_SetItemString(d, "compatible_formats", compatible_formats);
+    Py_XDECREF(format_version);
+    Py_XDECREF(compatible_formats);
 
     init_stuff(m, d);
     CHECK_FOR_ERRORS("can't initialize module cPickle");
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index b08c899..ff47b70 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -600,7 +600,7 @@
 
 void
 initcStringIO() {
-  PyObject *m, *d;
+  PyObject *m, *d, *v;
 
 
   /* Create the module and add the functions */
@@ -614,7 +614,9 @@
   /* Export C API */
   Itype.ob_type=&PyType_Type;
   Otype.ob_type=&PyType_Type;
-  PyDict_SetItemString(d,"cStringIO_CAPI", PyCObject_FromVoidPtr(&CAPI,NULL));
+  PyDict_SetItemString(d,"cStringIO_CAPI",
+		       v = PyCObject_FromVoidPtr(&CAPI,NULL));
+  Py_XDECREF(v);
 
   /* Export Types */
   PyDict_SetItemString(d,"InputType",  (PyObject*)&Itype);
@@ -631,6 +633,9 @@
 /******************************************************************************
 
   $Log$
+  Revision 2.8  1997/09/03 18:19:38  guido
+  #Plug small memory leaks in constructors.
+
   Revision 2.7  1997/09/03 00:09:26  guido
   Fix the bug Jeremy was experiencing: both the close() and the
   dealloc() functions contained code to free/DECREF the buffer
diff --git a/Modules/operator.c b/Modules/operator.c
index 43324a2..14a7aaf 100644
--- a/Modules/operator.c
+++ b/Modules/operator.c
@@ -256,7 +256,7 @@
 void
 initoperator()
 {
-        PyObject *m, *d;
+        PyObject *m, *d, *v;
   
         /* Create the module and add the functions */
         m = Py_InitModule4("operator", operator_methods,
@@ -266,7 +266,8 @@
         /* Add some symbolic constants to the module */
         d = PyModule_GetDict(m);
         PyDict_SetItemString(d, "__version__",
-                             PyString_FromString("$Rev$"));
+                             v = PyString_FromString("$Rev$"));
+	Py_XDECREF(v);
   
         /* Check for errors */
         if (PyErr_Occurred())
