diff --git a/libraries/io/eth/src/vhdl/eth_tester_tx.vhd b/libraries/io/eth/src/vhdl/eth_tester_tx.vhd
index 39558725013ee5c264751152b4376254da429b0a..8d5dace234f77b58714d4b3d949c6de114f00d92 100644
--- a/libraries/io/eth/src/vhdl/eth_tester_tx.vhd
+++ b/libraries/io/eth/src/vhdl/eth_tester_tx.vhd
@@ -92,6 +92,7 @@ ARCHITECTURE str OF eth_tester_tx IS
   SIGNAL bg_data                  : STD_LOGIC_VECTOR(c_octet_w-1 DOWNTO 0);
   SIGNAL bg_ctrl_hold             : t_diag_block_gen;
   SIGNAL bg_block_len             : NATURAL;
+  SIGNAL tx_packed_siso           : t_dp_siso;
   SIGNAL tx_packed_sosi           : t_dp_sosi;
   SIGNAL tx_packed_data           : STD_LOGIC_VECTOR(c_word_w-1 DOWNTO 0);
   SIGNAL tx_fifo_sosi             : t_dp_sosi;
@@ -149,6 +150,10 @@ BEGIN
     out_siso_arr(0)       => bg_siso
   );
 
+  -- BG clock level flow control, needed when the dp_repack_data has to insert
+  -- empty octets into the last packed word.
+  bg_siso.ready <= tx_packed_siso.ready;
+
   -- BG block level flow control, needed in case BG settings result in eth bit
   -- rate > 1 Gbps, to avoid u_tx_fifo overflow.
   p_bg_siso_xon : PROCESS(st_clk)
@@ -173,6 +178,7 @@ BEGIN
   PORT MAP (
     rst              => st_rst,
     clk              => st_clk,
+    snk_out          => tx_packed_siso,
     snk_in           => bg_sosi,
     src_out          => tx_packed_sosi
   );