diff --git a/libraries/base/dp/src/vhdl/dp_repack_data.vhd b/libraries/base/dp/src/vhdl/dp_repack_data.vhd
index 9469c48397784de9b3371c14caaf3505425b334e..9fefc27d378bdcd149b8ec0e66e57bf90506fe42 100644
--- a/libraries/base/dp/src/vhdl/dp_repack_data.vhd
+++ b/libraries/base/dp/src/vhdl/dp_repack_data.vhd
@@ -227,6 +227,7 @@ ARCHITECTURE rtl OF dp_repack_in IS
   -- Debug signals
   SIGNAL snk_in_data        : STD_LOGIC_VECTOR(g_in_dat_w-1 DOWNTO 0);
   SIGNAL i_src_out          : t_dp_sosi;
+  SIGNAL i_src_out_data     : STD_LOGIC_VECTOR(c_in_buf_dat_w-1 DOWNTO 0);
 
   SIGNAL dbg_g_in_dat_w   : NATURAL := g_in_dat_w;
   SIGNAL dbg_in_nof_words : NATURAL := g_in_nof_words;
@@ -238,10 +239,12 @@ BEGIN
   snk_in_data <= snk_in.data(g_in_dat_w-1 DOWNTO 0);
   
   src_out      <= i_src_out;
+  src_out_data <= i_src_out_data;
   
   gen_bypass : IF g_bypass=TRUE GENERATE
-    snk_out   <= src_in;
-    i_src_out <= snk_in;
+    snk_out        <= src_in;
+    i_src_out      <= snk_in;
+    i_src_out_data <= RESIZE_UVEC(snk_in.data, c_in_buf_dat_w);
   END GENERATE;
   
   no_bypass : IF g_bypass=FALSE GENERATE
@@ -367,7 +370,7 @@ BEGIN
     --------------------------------------------------------------------------
     -- Wired output
     i_src_out <= r.src_out;
-    src_out_data <= r.src_out_data;
+    i_src_out_data <= r.src_out_data;
     --------------------------------------------------------------------------
     -- Flow control
   
@@ -444,7 +447,6 @@ ARCHITECTURE rtl OF dp_repack_out IS
   SIGNAL nxt_r     : t_reg;
 
   -- Debug signals
-  SIGNAL i_src_out_data     : STD_LOGIC_VECTOR(g_in_buf_dat_w-1 DOWNTO 0);
   SIGNAL i_src_out          : t_dp_sosi;
   SIGNAL src_out_data       : STD_LOGIC_VECTOR(g_out_dat_w-1 DOWNTO 0);
 
@@ -459,7 +461,7 @@ ARCHITECTURE rtl OF dp_repack_out IS
 BEGIN
 
   src_out      <= i_src_out;
-  src_out_data <= i_src_out_data(g_out_dat_w-1 DOWNTO 0);
+  src_out_data <= i_src_out.data(g_out_dat_w-1 DOWNTO 0);
   
   gen_bypass : IF g_bypass=TRUE GENERATE
     snk_out <= src_in;
@@ -468,11 +470,11 @@ BEGIN
     BEGIN
       i_src_out <= snk_in;
       IF c_snk_in_dat_lo>0 THEN
-        i_src_out_data  <= SHIFT_UVEC(snk_in_data,   c_snk_in_dat_lo);
+        i_src_out.data  <= SHIFT_UVEC(RESIZE_DP_DATA(snk_in_data), c_snk_in_dat_lo);
         i_src_out.empty <= INCR_UVEC( snk_in.empty, -c_snk_in_dat_lo);
       END IF;
       IF c_out_buf_dat_lo>0 THEN
-        i_src_out_data  <= SHIFT_UVEC(snk_in_data, -c_out_buf_dat_lo);
+        i_src_out.data  <= SHIFT_UVEC(RESIZE_DP_DATA(snk_in_data), -c_out_buf_dat_lo);
         i_src_out.empty <= INCR_UVEC( snk_in.empty, c_out_buf_dat_lo);
       END IF;
     END PROCESS;