diff --git a/Objects/listobject.c b/Objects/listobject.c
index 4026622..18bdbca 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -94,21 +94,18 @@
 {
 	register object *olditem;
 	if (!is_listobject(op)) {
-		if (newitem != NULL)
-			DECREF(newitem);
+		XDECREF(newitem);
 		err_badcall();
 		return -1;
 	}
 	if (i < 0 || i >= ((listobject *)op) -> ob_size) {
-		if (newitem != NULL)
-			DECREF(newitem);
+		XDECREF(newitem);
 		err_setstr(IndexError, "list assignment index out of range");
 		return -1;
 	}
 	olditem = ((listobject *)op) -> ob_item[i];
 	((listobject *)op) -> ob_item[i] = newitem;
-	if (olditem != NULL)
-		DECREF(olditem);
+	XDECREF(olditem);
 	return 0;
 }
 
@@ -177,8 +174,7 @@
 {
 	int i;
 	for (i = 0; i < op->ob_size; i++) {
-		if (op->ob_item[i] != NULL)
-			DECREF(op->ob_item[i]);
+		XDECREF(op->ob_item[i]);
 	}
 	if (op->ob_item != NULL)
 		free((ANY *)op->ob_item);
@@ -552,6 +548,25 @@
 }
 
 static object *
+listcount(self, args)
+	listobject *self;
+	object *args;
+{
+	int count = 0;
+	int i;
+	
+	if (args == NULL) {
+		err_badarg();
+		return NULL;
+	}
+	for (i = 0; i < self->ob_size; i++) {
+		if (cmpobject(self->ob_item[i], args) == 0)
+			count++;
+	}
+	return newintobject((long)count);
+}
+
+static object *
 listremove(self, args)
 	listobject *self;
 	object *args;
@@ -577,6 +592,7 @@
 
 static struct methodlist list_methods[] = {
 	{"append",	listappend},
+	{"count",	listcount},
 	{"index",	listindex},
 	{"insert",	listinsert},
 	{"sort",	listsort},
