diff --git a/Objects/bufferobject.c b/Objects/bufferobject.c
index 73f361e..b0227c1 100644
--- a/Objects/bufferobject.c
+++ b/Objects/bufferobject.c
@@ -246,15 +246,15 @@
 		return PyString_FromFormat("<%s buffer ptr %p, size %zd at %p>",
 					   status,
 					   self->b_ptr,
-					   (long)self->b_size,
+					   self->b_size,
 					   self);
 	else
 		return PyString_FromFormat(
 			"<%s buffer for %p, size %zd, offset %zd at %p>",
 			status,
 			self->b_base,
-			(long)self->b_size,
-			(long)self->b_offset,
+			self->b_size,
+			self->b_offset,
 			self);
 }
 
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 7910cb6..f5e5320 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -1149,7 +1149,7 @@
 			PyErr_Format(PyExc_ValueError,
 				     "dictionary update sequence element #%d "
 				     "has length %zd; 2 is required",
-				     i, (long)n);
+				     i, n);
 			goto Fail;
 		}
 
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index ff70baf..fe34a11 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -251,7 +251,7 @@
 			     "%s() requires a code object with %zd free vars,"
 			     " not %zd",
 			     PyString_AsString(op->func_name),
-			     (long)nclosure, (long)nfree);
+			     nclosure, nfree);
 		return -1;
 	}
 	tmp = op->func_code;
@@ -403,7 +403,7 @@
 		return PyErr_Format(PyExc_ValueError,
 				    "%s requires closure of length %zd, not %zd",
 				    PyString_AS_STRING(code->co_name),
-				    (long)nfree, (long)nclosure);
+				    nfree, nclosure);
 	if (nclosure) {
 		Py_ssize_t i;
 		for (i = 0; i < nclosure; i++) {
diff --git a/Objects/listobject.c b/Objects/listobject.c
index a970c14..c083ffc 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2600,8 +2600,8 @@
 			if (PySequence_Fast_GET_SIZE(seq) != slicelength) {
 				PyErr_Format(PyExc_ValueError,
             "attempt to assign sequence of size %zd to extended slice of size %zd",
-					     (long)PySequence_Fast_GET_SIZE(seq),
-					     (long)slicelength);
+					     PySequence_Fast_GET_SIZE(seq),
+					     slicelength);
 				Py_DECREF(seq);
 				return -1;
 			}
diff --git a/Objects/structseq.c b/Objects/structseq.c
index 7a01fc4..023a1fd 100644
--- a/Objects/structseq.c
+++ b/Objects/structseq.c
@@ -126,7 +126,7 @@
 		if (len < min_len) {
 			PyErr_Format(PyExc_TypeError, 
 	       "%.500s() takes an at least %zd-sequence (%zd-sequence given)",
-				     type->tp_name, (long)min_len, (long)len);
+				     type->tp_name, min_len, len);
 			Py_DECREF(arg);
 			return NULL;
 		}
@@ -134,7 +134,7 @@
 		if (len > max_len) {
 			PyErr_Format(PyExc_TypeError, 
 	       "%.500s() takes an at most %zd-sequence (%zd-sequence given)",
-				     type->tp_name, (long)max_len, (long)len);
+				     type->tp_name, max_len, len);
 			Py_DECREF(arg);
 			return NULL;
 		}
@@ -143,7 +143,7 @@
 		if (len != min_len) {
 			PyErr_Format(PyExc_TypeError, 
 	       "%.500s() takes a %zd-sequence (%zd-sequence given)",
-				     type->tp_name, (long)min_len, (long)len);
+				     type->tp_name, min_len, len);
 			Py_DECREF(arg);
 			return NULL;
 		}
