If an attribute is deleted, __setattr__ is called with 2 instead of 3
arguments (adding __delattr__ was deemed too much overhead)
diff --git a/Objects/classobject.c b/Objects/classobject.c
index b8b72e9..a05c0bf 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -459,7 +459,11 @@
 {
 	object *ac;
 	if (inst->in_setattr != NULL) {
-		object *args = mkvalue("(sO)", name, v);
+		object *args;
+		if (v == NULL)
+			args = mkvalue("(s)", name);
+		else
+			args = mkvalue("(sO)", name, v);
 		if (args != NULL) {
 			object *res = call_object(inst->in_setattr, args);
 			DECREF(args);