diff --git a/libraries/base/dp/src/vhdl/dp_rsn_source.vhd b/libraries/base/dp/src/vhdl/dp_rsn_source.vhd
index 612ce72f194520f0e33a149a786a58e880063a67..2fe9e62030cac214eae839ccb7656e7e637df9c5 100644
--- a/libraries/base/dp/src/vhdl/dp_rsn_source.vhd
+++ b/libraries/base/dp/src/vhdl/dp_rsn_source.vhd
@@ -111,9 +111,9 @@ BEGIN
   rs_restart <= i_rs_restart;
   rs_new_interval <= i_rs_new_interval;
 
-  rsn <= MULT_UVEC(bs_sosi.bsn, TO_UVEC(g_block_size, c_block_size_cnt_w));
+  rsn <= MULT_UVEC(bs_sosi.bsn(g_bsn_w-1 DOWNTO 0), TO_UVEC(g_block_size, c_block_size_cnt_w));
 
-  p_state : PROCESS(sync, sync_size_cnt, nof_clk_per_sync,
+  p_state : PROCESS(bs_sosi, sync, sync_size_cnt, nof_clk_per_sync,
                     state, prev_state,
                     i_rs_sosi, block_size_cnt, rsn)
   BEGIN  
@@ -144,9 +144,10 @@ BEGIN
     CASE state IS
       WHEN s_off =>
         nxt_rs_sosi <= c_dp_sosi_rst;
-        nxt_rs_sosi.bsn <= rsn(g_bsn_w-1 DOWNTO 0);  -- RSN fits in g_bsn_w
+        nxt_rs_sosi.bsn <= RESIZE_DP_BSN(rsn);  -- RSN fits in g_bsn_w
         nxt_sync <= '0';
         nxt_sync_size_cnt <= (OTHERS=>'0');
+        nxt_block_size_cnt <= (OTHERS=>'0');
         IF bs_sosi.sync = '1' THEN
           nxt_rs_sosi.sync <= '1';
           nxt_rs_sosi.sop <= '1';