Use memcpy() instead of memmove() when the buffers are known to be distinct.
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 500f823..b61d7da 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -518,7 +518,7 @@
 	else
 		p = recycle = NULL;
 	if (d <= 0) { /* Delete -d items; recycle ihigh-ilow items */
-		memmove(p, &item[ilow], (ihigh - ilow)*sizeof(PyObject *));
+		memcpy(p, &item[ilow], (ihigh - ilow)*sizeof(PyObject *));
 		p += ihigh - ilow;
 		if (d < 0) {
 			memmove(&item[ihigh+d], &item[ihigh], 
@@ -537,7 +537,7 @@
 		item = a->ob_item;
 		memmove(&item[ihigh+d], &item[ihigh],
 			(s - ihigh)*sizeof(PyObject *));
-		memmove(p, &item[ilow], (ihigh - ilow)*sizeof(PyObject *));
+		memcpy(p, &item[ilow], (ihigh - ilow)*sizeof(PyObject *));
 		p += ihigh - ilow;
 	}
 	for (k = 0; k < n; k++, ilow++) {