Avoid using calloc().  This triggered an obscure bug on multiprocessor
Sparc Solaris 2.6 (fully patched!) that I don't want to dig into, but
which I suspect is a bug in the multithreaded malloc library that only
shows up when run on a multiprocessor.  (The program wasn't using
threads, it was just using the multithreaded C library.)
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 7fed379..7b62258 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -283,11 +283,12 @@
 			break;
 		}
 	}
-	newtable = (dictentry *) calloc(sizeof(dictentry), newsize);
+	newtable = (dictentry *) malloc(sizeof(dictentry) * newsize);
 	if (newtable == NULL) {
 		PyErr_NoMemory();
 		return -1;
 	}
+	memset(newtable, '\0', sizeof(dictentry) * newsize);
 	mp->ma_size = newsize;
 	mp->ma_poly = newpoly;
 	mp->ma_table = newtable;