Eliminated gcc -Wall complaints:

    - Quieted gcc -Wall by removing unused local variables.

    - Added some choice parentheses around assignments in conditional
      tests.

    - Removed an unused (and seemingly unreachable) err label in
      load_short_binstring().

    - in Unpickler_load(), removed \. in string format.

    - init_stuff() was declared to return an int, but had these
      problems:

	- it was returning NULL instead of 0 or 1 in some cases
	- it was falling of the end of the routine without returning
	  anything
	- the call of init_stuff() in initcPickle() was never checking
	  the return value anyway.

      I changed all this by returning 1 in the case of errors, 0 when
      no error occurred.  Then in initcPickle(), if init_stuff()
      returns non-zero, I call Py_FatalError().

Suppressing my urge to reformat according to Python coding standards!
:-)
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index f342051..b80548e 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -346,7 +346,6 @@
     ARGDECL(int, n)
 {
   PyObject *bytes, *str;
-  char *ret_str;
 
   UNLESS(bytes = PyInt_FromLong(n))
   {
@@ -543,7 +542,7 @@
     return NULL;
 
   i = 0;
-  while (j = PyDict_Next(modules_dict, &i, &name, &module))
+  while ((j = PyDict_Next(modules_dict, &i, &name, &module)))
   {
     UNLESS(name_str = PyString_AsString(name))
       return NULL;
@@ -1032,10 +1031,10 @@
     ARGDECL(Picklerobject *, self)
     ARGDECL(PyObject *, args)
 {
-  PyObject *class = 0, *module = 0, *name = 0, *py_inst_id = 0, *init_args = 0,
+  PyObject *class = 0, *module = 0, *name = 0,
            *junk = 0, *state = 0, *getinitargs_func = 0, *getstate_func = 0;
   char *module_str, *name_str, *c_str;
-  int len, p, module_size, name_size, size;
+  int module_size, name_size, size;
   static char build = BUILD;
 
   if ((*self->write_func)(self, &MARKv, 1) == -1)
@@ -1051,7 +1050,7 @@
     Py_DECREF(junk);
   }
 
-  if (getinitargs_func = PyObject_GetAttrString(args, "__getinitargs__"))
+  if ((getinitargs_func = PyObject_GetAttrString(args, "__getinitargs__")))
   {
     PyObject *class_args = 0, *element = 0;
     int i, len;
@@ -1140,7 +1139,7 @@
     }
   }
 
-  if (getstate_func = PyObject_GetAttrString(args, "__getstate__"))
+  if ((getstate_func = PyObject_GetAttrString(args, "__getstate__")))
   {
     UNLESS(state = PyObject_CallObject(getstate_func, empty_tuple))
     {
@@ -2172,7 +2171,7 @@
     ARGDECL(PyObject *, args)
 {
   PyObject *py_string = 0;
-  char *s, *endptr;
+  char *s;
   int len, i;
 
   if ((len = (*self->readline_func)(self, &s)) == -1)
@@ -2279,11 +2278,6 @@
 
   Py_INCREF(Py_None);
   return Py_None;
-
-err:
-  Py_XDECREF(py_string);
-
-  return NULL;
 }
 
 
@@ -2485,7 +2479,7 @@
     ARGDECL(PyObject *, args)
 {
   PyObject *arg_tup = 0, *arg_slice = 0, *class = 0, *obj = 0;
-  int i, j, len;
+  int i, j;
   char *s, *module_name, *class_name;
 
   if ((i = marker(self)) == -1)
@@ -3091,8 +3085,7 @@
     ARGDECL(PyObject *, args)
 {
   PyObject *stack = 0, *key = 0, *junk = 0, *err = 0,
-           *exc = 0, *val = 0, *tb = 0, *str = 0,
-           *key_repr = 0;
+           *val = 0, *str = 0, *key_repr = 0;
   char c;
   char *c_str;
   int len;
@@ -3284,7 +3277,7 @@
           return NULL;
 
         sprintf(PyString_AS_STRING((PyStringObject *)str), 
-            "invalid load key, \%s\.", PyString_AS_STRING((PyStringObject *)key_repr));
+            "invalid load key, \%s.", PyString_AS_STRING((PyStringObject *)key_repr));
 
         PyErr_SetObject(UnpicklingError, str);
 
@@ -3686,10 +3679,10 @@
   PyObject *builtins, *apply_func, *string;
 
   UNLESS(builtins = PyImport_ImportModule("__builtin__"))
-    return NULL;
+    return 1;
 
   UNLESS(apply_func = PyObject_GetAttrString(builtins, "apply"))
-    return NULL;
+    return 1;
 
   BuiltinFunctionType = apply_func->ob_type;
 
@@ -3698,29 +3691,30 @@
   Py_DECREF(builtins);
 
   UNLESS(string = PyImport_ImportModule("string"))
-    return NULL;
+    return 1;
 
   UNLESS(atol_func = PyObject_GetAttrString(string, "atol"))
-    return NULL;
+    return 1;
 
   Py_DECREF(string);
 
   UNLESS(empty_list = PyList_New(0))
-    return NULL;
+    return 1;
 
   UNLESS(empty_tuple = PyTuple_New(0))
-    return NULL;
+    return 1;
 
   UNLESS(class_map = PyDict_New())
-    return NULL;
+    return 1;
 
   UNLESS(PicklingError = PyString_FromString("cPickle.PicklingError"))
-    return NULL;
+    return 1;
 
   UNLESS(UnpicklingError = PyString_FromString("cPickle.UnpicklingError"))
-    return NULL;
+    return 1;
 
   PycString_IMPORT;
+  return 0;
 }
 
 
@@ -3756,7 +3750,9 @@
 
   /* XXXX Add constants here */
 
-  init_stuff();
+  if (init_stuff())
+	  Py_FatalError("can't initialize module cPickle");
+
   CHECK_FOR_ERRORS("can't initialize module cPickle");
 
   PyDict_SetItemString(d, "PicklingError", PicklingError);