diff --git a/libraries/base/dp/src/vhdl/dp_offload_rx.vhd b/libraries/base/dp/src/vhdl/dp_offload_rx.vhd
index d2eef67a136e6909bbd10ec6bd3f44ef19de2ac1..ff1a52c71575982bedcdecf3eaa95edac477d7e2 100644
--- a/libraries/base/dp/src/vhdl/dp_offload_rx.vhd
+++ b/libraries/base/dp/src/vhdl/dp_offload_rx.vhd
@@ -130,8 +130,11 @@ BEGIN
       src_out_arr => dp_split_src_out_2arr(i)
     );
 
-    dp_split_src_in_2arr(i)(1) <= c_dp_siso_rdy;
-
+    -- In dp_split index 0 is head and index 1 is tail, but dp_split uses 0 TO
+    -- 1 range and dp_split_src_in_2arr()() uses 1 DOWNTO 0 range, so:
+    -- . dp_split_src_in_2arr()(1) is the header part, and
+    -- . dp_split_src_in_2arr()(0) is the tail part.
+    dp_split_src_in_2arr(i)(1) <= c_dp_siso_rdy;  -- flow control for rx header to MM is always ready
   END GENERATE;
 
   ---------------------------------------------------------------------------------------
@@ -186,7 +189,7 @@ BEGIN
       st_clk  => dp_clk,
    
       snk_out => dp_split_src_in_2arr(i)(0), 
-      snk_in  => dp_split_src_out_2arr(i)(0),
+      snk_in  => dp_split_src_out_2arr(i)(0),  -- tail part
   
       src_in  => dp_tail_remove_src_in_arr(i),   
       src_out => dp_tail_remove_src_out_arr(i)