diff --git a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_correlator.vhd b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_correlator.vhd
index 37e76a6a274f6c2119fc3337fcf5f0680e3990bf..ec24c83918eb1cd71388cd8aa2b027afaf2f438a 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_correlator.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_correlator.vhd
@@ -93,6 +93,7 @@ ARCHITECTURE str OF node_sdp_correlator IS
   CONSTANT c_block_size      : NATURAL  := c_sdp_N_crosslets_max * c_sdp_S_pn;
   CONSTANT c_data_w          : NATURAL  := c_sdp_W_crosslet * c_nof_complex;
   CONSTANT c_mux_fifo_size   : NATURAL  := 2**ceil_log2(g_P_sq * c_block_size); -- Large enough to store a block for each remote packet.
+  CONSTANT c_fifo_fill_size  : NATURAL  := 2**ceil_log2(3 * c_block_size); 
 
 -- crosslet statistics offload
   SIGNAL ram_st_offload_copi           : t_mem_copi := c_mem_copi_rst;
@@ -111,6 +112,8 @@ ARCHITECTURE str OF node_sdp_correlator IS
 
   SIGNAL ring_mux_sosi                 : t_dp_sosi := c_dp_sosi_rst;
   SIGNAL ring_mux_siso                 : t_dp_siso := c_dp_siso_rdy;
+  SIGNAL dp_fifo_fill_sosi             : t_dp_sosi := c_dp_sosi_rst;
+  SIGNAL dp_fifo_fill_siso             : t_dp_siso := c_dp_siso_rdy;
   SIGNAL rx_sosi                       : t_dp_sosi := c_dp_sosi_rst;
   SIGNAL dispatch_invert_sosi_arr      : t_dp_sosi_arr(0 TO g_P_sq-1) := (OTHERS => c_dp_sosi_rst);
   SIGNAL dispatch_sosi_arr             : t_dp_sosi_arr(g_P_sq-1 DOWNTO 0) := (OTHERS => c_dp_sosi_rst);
@@ -230,6 +233,35 @@ BEGIN
 
   to_ri_sosi <= ring_mux_sosi;
 
+  -- fill fifo to remove gaps
+  u_dp_fifo_fill_eop : ENTITY dp_lib.dp_fifo_fill_eop
+  GENERIC MAP (
+    g_data_w         => c_longword_w,
+    g_bsn_w          => c_dp_stream_bsn_w, 
+    g_empty_w        => c_dp_stream_empty_w, 
+    g_channel_w      => c_dp_stream_channel_w,
+    g_error_w        => c_dp_stream_error_w, 
+    g_use_bsn        => TRUE, 
+    g_use_empty      => TRUE, 
+    g_use_channel    => TRUE, 
+    g_use_error      => TRUE, 
+    g_use_sync       => TRUE, 
+    g_fifo_fill      => c_block_size,
+    g_fifo_size      => c_fifo_fill_size
+  )
+  PORT MAP (
+    wr_rst      => dp_rst,
+    wr_clk      => dp_clk,
+    rd_rst      => dp_rst,
+    rd_clk      => dp_clk,
+
+    snk_out     => ring_mux_siso,
+    snk_in      => ring_mux_sosi,
+
+    src_in      => dp_fifo_fill_siso,
+    src_out     => dp_fifo_fill_sosi
+  );
+
   ---------------------------------------------------------------
   -- Repack 64b to 32b
   ---------------------------------------------------------------
@@ -245,8 +277,8 @@ BEGIN
     rst => dp_rst,
     clk => dp_clk,
 
-    snk_in  => ring_mux_sosi,
-    snk_out => ring_mux_siso,
+    snk_in  => dp_fifo_fill_sosi,
+    snk_out => dp_fifo_fill_siso,
     src_out => rx_sosi
   );
 
@@ -268,11 +300,7 @@ BEGIN
     src_out_arr => dispatch_invert_sosi_arr
   );
 
-  p_debug : PROCESS(dispatch_invert_sosi_arr, xsel_data_sosi)
-  BEGIN
-    dispatch_sosi_arr <= func_dp_stream_arr_reverse_range(dispatch_invert_sosi_arr);
-    dispatch_sosi_arr(0) <= xsel_data_sosi;
-  END PROCESS;
+  dispatch_sosi_arr <= func_dp_stream_arr_reverse_range(dispatch_invert_sosi_arr);
     
 
   ---------------------------------------------------------------