diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index bcd615d..8f3d3a6 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -169,14 +169,15 @@
 	register unsigned long sum = (unsigned long) hash;
 	register mappingentry *freeslot = NULL;
 	register int mask = mp->ma_size-1;
-	register mappingentry *ep = &mp->ma_table[i];
+	mappingentry *ep0 = mp->ma_table;
+	register mappingentry *ep;
 	/* We must come up with (i, incr) such that 0 <= i < ma_size
 	   and 0 < incr < ma_size and both are a function of hash */
 	i = (~sum) & mask;
 	/* We use ~sum instead if sum, as degenerate hash functions, such
 	   as for ints <sigh>, can have lots of leading zeros. It's not
 	   really a performance risk, but better safe than sorry. */
-	ep = &mp->ma_table[i];
+	ep = &ep0[i];
 	if (ep->me_key == NULL)
 		return ep;
 	if (ep->me_key == dummy)
@@ -185,16 +186,16 @@
 		 (ep->me_hash == hash && cmpobject(ep->me_key, key) == 0)) {
 		return ep;
 	}
-	/* Derive incr from i, just to make it more arbitrary. Note that
+	/* Derive incr from sum, just to make it more arbitrary. Note that
 	   incr must not be 0, or we will get into an infinite loop.*/
-	incr = i << 1;
+	incr = (sum ^ (sum >> 3)) & mask;
 	if (!incr)
 		incr = mask;
 	if (incr > mask) /* Cycle through GF(2^n)-{0} */
 		incr ^= mp->ma_poly; /* This will implicitly clear the
 					highest bit */
 	for (;;) {
-		ep = &mp->ma_table[(i+incr)&mask];
+		ep = &ep0[(i+incr)&mask];
 		if (ep->me_key == NULL) {
 			if (freeslot != NULL)
 				return freeslot;
diff --git a/Objects/mappingobject.c b/Objects/mappingobject.c
index bcd615d..8f3d3a6 100644
--- a/Objects/mappingobject.c
+++ b/Objects/mappingobject.c
@@ -169,14 +169,15 @@
 	register unsigned long sum = (unsigned long) hash;
 	register mappingentry *freeslot = NULL;
 	register int mask = mp->ma_size-1;
-	register mappingentry *ep = &mp->ma_table[i];
+	mappingentry *ep0 = mp->ma_table;
+	register mappingentry *ep;
 	/* We must come up with (i, incr) such that 0 <= i < ma_size
 	   and 0 < incr < ma_size and both are a function of hash */
 	i = (~sum) & mask;
 	/* We use ~sum instead if sum, as degenerate hash functions, such
 	   as for ints <sigh>, can have lots of leading zeros. It's not
 	   really a performance risk, but better safe than sorry. */
-	ep = &mp->ma_table[i];
+	ep = &ep0[i];
 	if (ep->me_key == NULL)
 		return ep;
 	if (ep->me_key == dummy)
@@ -185,16 +186,16 @@
 		 (ep->me_hash == hash && cmpobject(ep->me_key, key) == 0)) {
 		return ep;
 	}
-	/* Derive incr from i, just to make it more arbitrary. Note that
+	/* Derive incr from sum, just to make it more arbitrary. Note that
 	   incr must not be 0, or we will get into an infinite loop.*/
-	incr = i << 1;
+	incr = (sum ^ (sum >> 3)) & mask;
 	if (!incr)
 		incr = mask;
 	if (incr > mask) /* Cycle through GF(2^n)-{0} */
 		incr ^= mp->ma_poly; /* This will implicitly clear the
 					highest bit */
 	for (;;) {
-		ep = &mp->ma_table[(i+incr)&mask];
+		ep = &ep0[(i+incr)&mask];
 		if (ep->me_key == NULL) {
 			if (freeslot != NULL)
 				return freeslot;
