diff --git a/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd b/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd
index 63c6a9ad92cd873e61c7230f857b5300455a31ad..2ad38181d7f13681d06ce4865398de664fbdef1d 100644
--- a/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd
+++ b/libraries/base/diag/src/vhdl/mms_diag_block_gen.vhd
@@ -194,6 +194,8 @@ BEGIN
   no_bg : IF g_use_bg=FALSE GENERATE
     reg_bg_ctrl_miso <= c_mem_miso_rst;
     ram_bg_data_miso <= c_mem_miso_rst;
+    
+    bg_src_out_arr <= (OTHERS=>c_dp_sosi_rst);
   END GENERATE;
   
   gen_bg : IF g_use_bg=TRUE GENERATE
@@ -287,28 +289,25 @@ BEGIN
   END GENERATE;
           
   
-  no_dp_mux : IF c_use_mux=FALSE GENERATE
-    ---------------------------------------------------------------------------
-    -- User input only
-    ---------------------------------------------------------------------------
-    gen_usr_input : IF g_use_usr_input=TRUE GENERATE
-      usr_siso_arr    <= mux_src_in_arr;
-      mux_src_out_arr <= usr_sosi_arr;
-    END GENERATE;
-    ---------------------------------------------------------------------------
-    -- BG only
-    ---------------------------------------------------------------------------
-    gen_bg : IF g_use_bg=TRUE GENERATE
-      bg_src_in_arr   <= mux_src_in_arr;
-      mux_src_out_arr <= bg_src_out_arr;
-    END GENERATE;
+  ---------------------------------------------------------------------------
+  -- No multiplexer, so only one input or no input at all
+  ---------------------------------------------------------------------------
+  no_dp_mux : IF c_use_mux=FALSE GENERATE  -- so g_use_usr_input and g_use_bg are not both TRUE
+    -- default pass on flow control
+    usr_siso_arr  <= mux_src_in_arr;
+    bg_src_in_arr <= mux_src_in_arr;
+    
+    -- User input only, BG only or no input
+    mux_src_out_arr <= usr_sosi_arr             WHEN g_use_usr_input=TRUE ELSE
+                       bg_src_out_arr           WHEN g_use_bg=TRUE        ELSE
+                      (OTHERS=>c_dp_sosi_rst);
   END GENERATE;
   
   
   -----------------------------------------------------------------------------
   -- Multiplex user input and BG
   -----------------------------------------------------------------------------
-  gen_dp_mux : IF c_use_mux=TRUE GENERATE
+  gen_dp_mux : IF c_use_mux=TRUE GENERATE  -- so g_use_usr_input and g_use_bg are both TRUE
     gen_streams : FOR I IN 0 TO g_nof_streams-1 GENERATE
       -- Add user xon flow control if the user input does not already support it
       u_dp_xonoff : ENTITY dp_lib.dp_xonoff