Merged the int/long unification branch, by very crude means (sorry Thomas!).
I banged on the code (beyond what's in that branch) to make fewer tests fail;
the only tests that fail now are:
  test_descr -- can't pickle ints?!
  test_pickletools -- ???
  test_socket -- See python.org/sf/1619659
  test_sqlite -- ???
I'll deal with those later.
diff --git a/Modules/_csv.c b/Modules/_csv.c
index a341eb4..e99acf9 100644
--- a/Modules/_csv.c
+++ b/Modules/_csv.c
@@ -219,7 +219,7 @@
 	if (src == NULL)
 		*target = dflt;
 	else {
-		if (!PyInt_Check(src)) {
+		if (!PyInt_CheckExact(src)) {
 			PyErr_Format(PyExc_TypeError, 
 				     "\"%s\" must be an integer", name);
 			return -1;
@@ -1410,7 +1410,7 @@
 	if (!PyArg_UnpackTuple(args, "field_size_limit", 0, 1, &new_limit))
 		return NULL;
 	if (new_limit != NULL) {
-		if (!PyInt_Check(new_limit)) {
+		if (!PyInt_CheckExact(new_limit)) {
 			PyErr_Format(PyExc_TypeError, 
 				     "limit must be an integer");
 			return NULL;