diff --git a/radio/rfsimulator/simulator.c b/radio/rfsimulator/simulator.c
index faa185a0cb576412b05ab0c89e0c404699fc3b8c..262cb87deb28a8ba7d56653abdcb17da081c5a29 100644
--- a/radio/rfsimulator/simulator.c
+++ b/radio/rfsimulator/simulator.c
@@ -973,7 +973,7 @@ static int rfsimulator_read(openair0_device *device, openair0_timestamp *ptimest
     }
   } else {
     bool have_to_wait;
-
+    int loops = 0;
     do {
       have_to_wait=false;
 
@@ -995,6 +995,12 @@ static int rfsimulator_read(openair0_device *device, openair0_timestamp *ptimest
               t->nextRxTstamp + nsamps);
         flushInput(t, 3, nsamps);
       }
+      if (loops++ > 10 && t->role == SIMU_ROLE_SERVER) {
+        // Just start producing samples. The clients will catch up.
+        have_to_wait = false;
+        LOG_W(HW,
+              "No longer waiting for clients to catch up, starting to produce samples\n");
+      }
     } while (have_to_wait);
   }