diff --git a/swiftmpistepsim.c b/swiftmpistepsim.c
index 9f57fb7b5c7e6d2306835674d4cb3b1ca06e0fb0..ae9a97600c92702265faa9ff0f4762a19e599990 100644
--- a/swiftmpistepsim.c
+++ b/swiftmpistepsim.c
@@ -149,9 +149,12 @@ static void *inject_thread(void *arg) {
     ind_req++;
 
     /* Set looptics on the first pass. Assumes MPI_Isend and MPI_Irecv are
-     * equally timed. */
+     * equally timed. Note we include a nanosleep, they are slow, and a fudge
+     * factor. */
     if (looptics == 0 && usetics) {
-      looptics = getticks() - starttics;
+      sleep.tv_nsec = 1;
+      nanosleep(&sleep, NULL);
+      looptics = (getticks() - starttics) * 2;
       if (verbose)
         message("injection loop took %.3f %s.", clocks_from_ticks(looptics),
                 clocks_getunit());