#Plug small memory leaks in constructors.
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())