Nits:
- Neatened the braces in PyList_New().
- Made sure "indexerr" was initialized to NULL.
- Factored if blocks in PyList_Append().
- Made sure "allocated" is initialized in list_init().
diff --git a/Objects/listobject.c b/Objects/listobject.c
index f3aee39..ac8cd33 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -65,9 +65,8 @@
 	}
 	nbytes = size * sizeof(PyObject *);
 	/* Check for overflow */
-	if (nbytes / sizeof(PyObject *) != (size_t)size) {
+	if (nbytes / sizeof(PyObject *) != (size_t)size)
 		return PyErr_NoMemory();
-	}
 	if (num_free_lists) {
 		num_free_lists--;
 		op = free_lists[num_free_lists];
@@ -77,14 +76,12 @@
 		if (op == NULL)
 			return NULL;
 	}
-	if (size <= 0) {
+	if (size <= 0)
 		op->ob_item = NULL;
-	}
 	else {
 		op->ob_item = (PyObject **) PyMem_MALLOC(nbytes);
-		if (op->ob_item == NULL) {
+		if (op->ob_item == NULL)
 			return PyErr_NoMemory();
-		}
 		memset(op->ob_item, 0, sizeof(*op->ob_item) * size);
 	}
 	op->ob_size = size;
@@ -104,7 +101,7 @@
 		return ((PyListObject *)op) -> ob_size;
 }
 
-static PyObject *indexerr;
+static PyObject *indexerr = NULL;
 
 PyObject *
 PyList_GetItem(PyObject *op, int i)
@@ -213,15 +210,10 @@
 int
 PyList_Append(PyObject *op, PyObject *newitem)
 {
-	if (!PyList_Check(op)) {
-		PyErr_BadInternalCall();
-		return -1;
-	}
-	if (newitem == NULL) {
-		PyErr_BadInternalCall();
-		return -1;
-	}
-	return app1((PyListObject *)op, newitem);
+	if (PyList_Check(op) && (newitem != NULL))
+		return app1((PyListObject *)op, newitem);
+	PyErr_BadInternalCall();
+	return -1;
 }
 
 /* Methods */
@@ -2314,6 +2306,7 @@
 	if (!PyArg_ParseTupleAndKeywords(args, kw, "|O:list", kwlist, &arg))
 		return -1;
 	/* Empty previous contents */
+	self->allocated = self->ob_size;
 	if (self->ob_size != 0) {
 		if (list_ass_slice(self, 0, self->ob_size, (PyObject *)NULL) != 0)
 			return -1;