Add back some safeguards on the index elements that were lost in the
last patch.  Dave Ascher found a case that dumps core without these:

def myComparison(x,y):
    return cmp(x%3,y%7)

z = range(12)
z.sort(myComparison)
diff --git a/Objects/listobject.c b/Objects/listobject.c
index a5bd038..8bec8af 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -719,7 +719,7 @@
 		r = hi-2;
 		for (;;) {
 			/* Move left index to element > pivot */
-			for (;;) {
+			while (l < hi) {
 				k = docompare(*l, pivot, compare); 
 				if (k == CMPERROR)
 					return -1;
@@ -728,7 +728,7 @@
 				l++;
 			}
 			/* Move right index to element < pivot */
-			for (;;) {
+			while (r >= lo) {
 				k = docompare(pivot, *r, compare);
 				if (k == CMPERROR)
 					return -1;