Merge ssize_t branch.
diff --git a/Objects/setobject.c b/Objects/setobject.c
index baa2d01..0041a10 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -51,8 +51,8 @@
 static setentry *
 set_lookkey(PySetObject *so, PyObject *key, register long hash)
 {
-	register int i;
-	register unsigned int perturb;
+	register Py_ssize_t i;
+	register size_t perturb;
 	register setentry *freeslot;
 	register unsigned int mask = so->mask;
 	setentry *table = so->table;
@@ -129,8 +129,8 @@
 static setentry *
 set_lookkey_string(PySetObject *so, PyObject *key, register long hash)
 {
-	register int i;
-	register unsigned int perturb;
+	register Py_ssize_t i;
+	register size_t perturb;
 	register setentry *freeslot;
 	register unsigned int mask = so->mask;
 	setentry *table = so->table;
@@ -468,9 +468,10 @@
  * mutates the table.  
  */
 static int
-set_next(PySetObject *so, int *pos_ptr, setentry **entry_ptr)
+set_next(PySetObject *so, Py_ssize_t *pos_ptr, setentry **entry_ptr)
 {
-	register int i, mask;
+	Py_ssize_t i;
+	int mask;
 	register setentry *table;
 
 	assert (PyAnySet_Check(so));
@@ -517,7 +518,7 @@
 set_tp_print(PySetObject *so, FILE *fp, int flags)
 {
 	setentry *entry;
-	int pos=0;
+	Py_ssize_t pos=0;
 	char *emit = "";	/* No separator emitted on first pass */
 	char *separator = ", ";
 
@@ -551,7 +552,7 @@
 	return result;
 }
 
-static int
+static Py_ssize_t
 set_len(PyObject *so)
 {
 	return ((PySetObject *)so)->used;
@@ -673,7 +674,7 @@
 static int
 set_traverse(PySetObject *so, visitproc visit, void *arg)
 {
-	int pos = 0;
+	Py_ssize_t pos = 0;
 	setentry *entry;
 
 	while (set_next(so, &pos, &entry))
@@ -687,7 +688,7 @@
 	PySetObject *so = (PySetObject *)self;
 	long h, hash = 1927868237L;
 	setentry *entry;
-	int pos = 0;
+	Py_ssize_t pos = 0;
 
 	if (so->hash != -1)
 		return so->hash;
@@ -752,7 +753,7 @@
 static PyObject *
 setiter_len(setiterobject *si)
 {
-	int len = 0;
+	long len = 0;
 	if (si->si_set != NULL && si->si_used == si->si_set->used)
 		len = si->len;
 	return PyInt_FromLong(len);
@@ -847,7 +848,7 @@
 
 	if (PyDict_Check(other)) {
 		PyObject *value;
-		int pos = 0;
+		Py_ssize_t pos = 0;
 		while (PyDict_Next(other, &pos, &key, &value)) {
 			if (set_add_key(so, key) == -1)
 				return -1;
@@ -1121,7 +1122,7 @@
 		return NULL;
 
 	if (PyAnySet_Check(other)) {		
-		int pos = 0;
+		Py_ssize_t pos = 0;
 		setentry *entry;
 
 		if (PySet_GET_SIZE(other) > PySet_GET_SIZE(so)) {
@@ -1222,7 +1223,7 @@
 	
 	if (PyAnySet_Check(other)) {
 		setentry *entry;
-		int pos = 0;
+		Py_ssize_t pos = 0;
 
 		while (set_next((PySetObject *)other, &pos, &entry))
 			set_discard_entry(so, entry);
@@ -1266,7 +1267,7 @@
 {
 	PyObject *result;
 	setentry *entry;
-	int pos = 0;
+	Py_ssize_t pos = 0;
 
 	if (!PyAnySet_Check(other)  && !PyDict_Check(other)) {
 		result = set_copy(so);
@@ -1340,7 +1341,7 @@
 {
 	PySetObject *otherset;
 	PyObject *key;
-	int pos = 0;
+	Py_ssize_t pos = 0;
 	setentry *entry;
 
 	if ((PyObject *)so == other)
@@ -1442,7 +1443,7 @@
 set_issubset(PySetObject *so, PyObject *other)
 {
 	setentry *entry;
-	int pos = 0;
+	Py_ssize_t pos = 0;
 
 	if (!PyAnySet_Check(other)) {
 		PyObject *tmp, *result;
@@ -1687,7 +1688,7 @@
 }
 
 static PySequenceMethods set_as_sequence = {
-	(inquiry)set_len,		/* sq_length */
+	(lenfunc)set_len,		/* sq_length */
 	0,				/* sq_concat */
 	0,				/* sq_repeat */
 	0,				/* sq_item */