diff -r 481e8dd15c9c Cython/Compiler/ExprNodes.py
--- a/Cython/Compiler/ExprNodes.py	Tue Mar 10 10:21:26 2009 +0100
+++ b/Cython/Compiler/ExprNodes.py	Tue Mar 10 14:10:51 2009 -0200
@@ -5403,7 +5403,7 @@
 proto = """
 static INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, Py_ssize_t i, int is_unsigned) {
     PyObject *r;
-    PyObject *j = (likely(i >= 0) || !is_unsigned) ? PyInt_FromLong(i) : PyLong_FromUnsignedLongLong((sizeof(unsigned long long) > sizeof(Py_ssize_t) ? (1ULL << (sizeof(Py_ssize_t)*8)) : 0) + i);
+    PyObject *j = PyInt_FromSsize_t(i);
     if (!j) return 0;
     r = PyObject_GetItem(o, j);
     Py_DECREF(j);
@@ -5466,7 +5466,7 @@
     else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_ass_item && (likely(i >= 0) || !is_unsigned))
         r = PySequence_SetItem(o, i, v);
     else {
-        PyObject *j = (likely(i >= 0) || !is_unsigned) ? PyInt_FromLong(i) : PyLong_FromUnsignedLongLong((sizeof(unsigned long long) > sizeof(Py_ssize_t) ? (1ULL << (sizeof(Py_ssize_t)*8)) : 0) + i);
+        PyObject *j = PyInt_FromSsize_t(i);
         if (!j)
             return -1;
         r = PyObject_SetItem(o, j, v);
@@ -5487,7 +5487,7 @@
     if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_ass_item && (likely(i >= 0) || !is_unsigned))
         r = PySequence_DelItem(o, i);
     else {
-        PyObject *j = (likely(i >= 0) || !is_unsigned) ? PyInt_FromLong(i) : PyLong_FromUnsignedLongLong((sizeof(unsigned long long) > sizeof(Py_ssize_t) ? (1ULL << (sizeof(Py_ssize_t)*8)) : 0) + i);
+        PyObject *j = PyInt_FromSsize_t(i);
         if (!j)
             return -1;
         r = PyObject_DelItem(o, j);
