diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c
index 2969ce9470d64c4e41b1612de0eceaa27f99041d..908a7ce80027ee16fa1f206b4680dd6150da90fd 100644
--- a/src/test/isolation/isolationtester.c
+++ b/src/test/isolation/isolationtester.c
@@ -554,8 +554,8 @@ run_permutation(TestSpec *testspec, int nsteps, Step **steps)
 
 				/* Remove that step from the waiting[] array. */
 				if (w + 1 < nwaiting)
-					memcpy(&waiting[w], &waiting[w + 1],
-						   (nwaiting - (w + 1)) * sizeof(Step *));
+					memmove(&waiting[w], &waiting[w + 1],
+							(nwaiting - (w + 1)) * sizeof(Step *));
 				nwaiting--;
 
 				break;
@@ -582,8 +582,8 @@ run_permutation(TestSpec *testspec, int nsteps, Step **steps)
 					/* This one finished, too! */
 					errorstep[nerrorstep++] = waiting[w];
 					if (w + 1 < nwaiting)
-						memcpy(&waiting[w], &waiting[w + 1],
-							   (nwaiting - (w + 1)) * sizeof(Step *));
+						memmove(&waiting[w], &waiting[w + 1],
+								(nwaiting - (w + 1)) * sizeof(Step *));
 					nwaiting--;
 				}
 			}
@@ -614,8 +614,8 @@ run_permutation(TestSpec *testspec, int nsteps, Step **steps)
 			{
 				errorstep[nerrorstep++] = waiting[w];
 				if (w + 1 < nwaiting)
-					memcpy(&waiting[w], &waiting[w + 1],
-						   (nwaiting - (w + 1)) * sizeof(Step *));
+					memmove(&waiting[w], &waiting[w + 1],
+							(nwaiting - (w + 1)) * sizeof(Step *));
 				nwaiting--;
 			}
 		}