diff --git a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_statistics_offload.vhd b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_statistics_offload.vhd
index fc0d0c32ff772128e93e60c7abaf905c48a582bd..016b6bb8ca3fb8953ca3ce66650e4e4cbf5c505d 100644
--- a/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_statistics_offload.vhd
+++ b/applications/lofar2/libraries/sdp/tb/vhdl/tb_sdp_statistics_offload.vhd
@@ -286,13 +286,23 @@ BEGIN
   BEGIN
     proc_common_wait_until_high(mm_clk, init_ram_done);
     proc_common_wait_some_cycles(dp_clk, 10);
+    -- Mark first in_sosi.sync interval, starting and ending somewhat before in_sosi.sync, to
+    -- ensure that one in_sosi.sync occurs during new_interval. Use c_nof_clk_per_block as
+    -- sufficient margin to allow for some latency between new_interval and in_sosi.sync.
+    new_interval <= '1';
+    proc_common_wait_some_cycles(dp_clk, c_nof_clk_per_block);
+    -- Start active in_sosi
     in_sosi.bsn <= TO_DP_BSN(c_bsn_init);
     in_sosi.valid <= '1';
     in_crosslets_info_rec <= c_crosslets_info_rec;
-    new_interval <= '1';  -- mark first in_sosi.sync interval
     WHILE TRUE LOOP
-      -- One in_sosi.sync interval
+      -- One in_sosi.sync interval per LOOP
       FOR i IN 0 TO c_nof_block_per_sync-1 LOOP
+        -- End new_interval somewhat before next in_sosi.sync
+        IF i = c_nof_block_per_sync-1 THEN
+          new_interval <= '0';
+        END IF;
+        -- One in_sosi.sop/eop block per LOOP
         FOR j IN 0 TO c_nof_clk_per_block-1 LOOP
           in_sosi.sync  <= '0';
           in_sosi.sop   <= '0';
@@ -314,7 +324,6 @@ BEGIN
           proc_common_wait_some_cycles(dp_clk, 1);
         END LOOP;
       END LOOP;
-      new_interval <= '0';
     END LOOP;
     WAIT;
   END PROCESS;