Michael Hudson <mwh21@cam.ac.uk>:
Removed PyErr_BadArgument() calls and replaced them with more useful
error messages.
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index d5d6a07..c26b7df 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -361,7 +361,9 @@
 	register int i;
 	PyTupleObject *np;
 	if (!PyTuple_Check(bb)) {
-		PyErr_BadArgument();
+		PyErr_Format(PyExc_TypeError,
+       		     "can only append tuple (not \"%.200s\") to tuple",
+			     bb->ob_type->tp_name);
 		return NULL;
 	}
 #define b ((PyTupleObject *)bb)