diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index 3e49387..565d397 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -504,7 +504,7 @@
 
 
 static char *
-strndup(char *s, int l)
+pystrndup(char *s, int l)
 {
   char *r;
   UNLESS(r=malloc((l+1)*sizeof(char))) return (char*)PyErr_NoMemory();
@@ -2013,7 +2013,7 @@
     long l;
 
     if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
-    UNLESS(s=strndup(s,len)) return -1;
+    UNLESS(s=pystrndup(s,len)) return -1;
 
     errno = 0;
     l = strtol(s, &endptr, 0);
@@ -2121,7 +2121,7 @@
     int len, res = -1;
 
     if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
-    UNLESS(s=strndup(s,len)) return -1;
+    UNLESS(s=pystrndup(s,len)) return -1;
 
     UNLESS(l = PyLong_FromString(s, &end, 0))
         goto finally;
@@ -2147,7 +2147,7 @@
     double d;
 
     if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
-    UNLESS(s=strndup(s,len)) return -1;
+    UNLESS(s=pystrndup(s,len)) return -1;
 
     errno = 0;
     d = strtod(s, &endptr);
@@ -2257,7 +2257,7 @@
     static PyObject *eval_dict = 0;
 
     if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
-    UNLESS(s=strndup(s,len)) return -1;
+    UNLESS(s=pystrndup(s,len)) return -1;
 
     UNLESS(eval_dict)
         UNLESS(eval_dict = Py_BuildValue("{s{}}", "__builtins__"))
@@ -3912,6 +3912,10 @@
 
 /****************************************************************************
  $Log$
+ Revision 2.9  1997/08/20 23:38:57  guido
+ Renamed strndup to pystrndup, to avoid conflicting prototype
+ in GNU libc on some platforms.
+
  Revision 2.8  1997/08/13 03:14:37  guido
  cPickle release 0.3 from Jim Fulton
 
