A few more type fixes for py3k that were missed in r69635
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 4ab60a1..ead6398 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -15,8 +15,10 @@
 #define NSMALLNEGINTS		5
 #endif
 
-#define MEDIUM_VALUE(x) (Py_SIZE(x) < 0 ? -(x)->ob_digit[0] : \
-			 (Py_SIZE(x) == 0 ? 0 : (x)->ob_digit[0]))
+/* convert a PyLong of size 1, 0 or -1 to an sdigit */
+#define MEDIUM_VALUE(x) (Py_SIZE(x) < 0 ? -(sdigit)(x)->ob_digit[0] :	\
+			 (Py_SIZE(x) == 0 ? (sdigit)0 :			\
+			  (sdigit)(x)->ob_digit[0]))
 #define ABS(x) ((x) < 0 ? -(x) : (x))
 
 #if NSMALLNEGINTS + NSMALLPOSINTS > 0
@@ -31,7 +33,7 @@
 #endif
 
 static PyObject *
-get_small_int(int ival)
+get_small_int(sdigit ival)
 {
 	PyObject *v = (PyObject*)(small_ints + ival + NSMALLNEGINTS);
 	Py_INCREF(v);
@@ -52,7 +54,7 @@
 maybe_small_long(PyLongObject *v)
 {
 	if (v && ABS(Py_SIZE(v)) <= 1) {
-		int ival = MEDIUM_VALUE(v);
+		sdigit ival = MEDIUM_VALUE(v);
 		if (-NSMALLNEGINTS <= ival && ival < NSMALLPOSINTS) {
 			Py_DECREF(v);
 			return (PyLongObject *)get_small_int(ival);
@@ -129,7 +131,7 @@
 	   sizeof(PyVarObject) instead of the offsetof, but this risks being
 	   incorrect in the presence of padding between the PyVarObject header
 	   and the digits. */
-	if (size > MAX_LONG_DIGITS) {
+	if (size > (Py_ssize_t)MAX_LONG_DIGITS) {
 		PyErr_SetString(PyExc_OverflowError,
 				"too many digits in integer");
 		return NULL;
@@ -154,7 +156,7 @@
 	if (i < 0)
 		i = -(i);
 	if (i < 2) {
-		int ival = src->ob_digit[0];
+		sdigit ival = src->ob_digit[0];
 		if (Py_SIZE(src) < 0)
 			ival = -ival;
 		CHECK_SMALL_INT(ival);
@@ -2142,7 +2144,7 @@
 			carry += v->ob_digit[i+k] - z
 				+ ((twodigits)zz << PyLong_SHIFT);
 			v->ob_digit[i+k] = (digit)(carry & PyLong_MASK);
-			carry = Py_ARITHMETIC_RIGHT_SHIFT(BASE_TWODIGITS_TYPE,
+			carry = Py_ARITHMETIC_RIGHT_SHIFT(stwodigits,
 							  carry, PyLong_SHIFT);
 			carry -= zz;
 		}
@@ -2162,7 +2164,7 @@
 				carry += v->ob_digit[i+k] + w->ob_digit[i];
 				v->ob_digit[i+k] = (digit)(carry & PyLong_MASK);
 				carry = Py_ARITHMETIC_RIGHT_SHIFT(
-						BASE_TWODIGITS_TYPE,
+						stwodigits,
 						carry, PyLong_SHIFT);
 			}
 		}
@@ -2216,7 +2218,7 @@
 		if (i < 0)
 			sign = 0;
 		else {
-			sign = (int)a->ob_digit[i] - (int)b->ob_digit[i];
+			sign = (sdigit)a->ob_digit[i] - (sdigit)b->ob_digit[i];
 			if (Py_SIZE(a) < 0)
 				sign = -sign;
 		}
@@ -3159,7 +3161,7 @@
 		for (i = Py_SIZE(b) - 1; i >= 0; --i) {
 			digit bi = b->ob_digit[i];
 
-			for (j = 1 << (PyLong_SHIFT-1); j != 0; j >>= 1) {
+			for (j = (digit)1 << (PyLong_SHIFT-1); j != 0; j >>= 1) {
 				MULT(z, z, z)
 				if (bi & j)
 					MULT(z, a, z)
@@ -3384,9 +3386,8 @@
 {
 	digit maska, maskb; /* 0 or PyLong_MASK */
 	int negz;
-	Py_ssize_t size_a, size_b, size_z;
+	Py_ssize_t size_a, size_b, size_z, i;
 	PyLongObject *z;
-	int i;
 	digit diga, digb;
 	PyObject *v;