diff --git a/modules/wrsw_rtu/rtu_match.vhd b/modules/wrsw_rtu/rtu_match.vhd
index 834a52017c8b3fe978407dc5f9b810523a85f8d6..f9060b69a7b5394a9b5f43d598f570ce5e594682 100644
--- a/modules/wrsw_rtu/rtu_match.vhd
+++ b/modules/wrsw_rtu/rtu_match.vhd
@@ -364,7 +364,7 @@ begin
 
   -- ML (11/04/2013) : to prevent broadcasting of unrecognized frames to CPU
   s_urec_broadcast_mask(g_num_ports-1     downto 0)           <= (others =>'1');
-  s_urec_broadcast_mask(c_RTU_MAX_PORTS-1 downto g_num_ports) <= (others =>'1') when (rtu_b_unrec_fw_cpu_i = '1') 
+  s_urec_broadcast_mask(c_RTU_MAX_PORTS-1 downto g_num_ports) <= (others =>'1') when (rtu_b_unrec_fw_cpu_i = '1') else 
                                                                  (others =>'0');   
 
   zeros <= (others =>'0');
@@ -709,7 +709,7 @@ begin
                   -- ML (24/03/2013): aging bugfix : update aging only for source found
                   -- update aging aram (in any case that entry was found,
                   -- even if dropped later, we update aging aram
-                  s_aram_main_data_o <= rtu_aram_main_data_i or f_onehot_encode(to_integer(unsigned(s_aram_bitsel_msb & htab_entry_i.bucket_entry)), 32);
+                  s_aram_main_data_o <= rtu_aram_main_data_i or f_onehot_encode(to_integer(unsigned(std_logic_vector'(s_aram_bitsel_msb & htab_entry_i.bucket_entry))), 32);
                   s_aram_main_wr     <= '1';
 
                   -------------------------------------------       
diff --git a/modules/wrsw_rtu/xwrsw_rtu_new.vhd b/modules/wrsw_rtu/xwrsw_rtu_new.vhd
index 6095bc199e31d1c789f6559a2093601018db4989..b3aed7a9dbd0eaa55c10d7beb112be4c970f8210 100644
--- a/modules/wrsw_rtu/xwrsw_rtu_new.vhd
+++ b/modules/wrsw_rtu/xwrsw_rtu_new.vhd
@@ -138,7 +138,7 @@ entity xwrsw_rtu_new is
     g_handle_only_single_req_per_port : boolean                        := FALSE;
     g_prio_num                        : integer;
     g_num_ports                       : integer;
-    g_cpu_port_num                    : integer := -1;
+    g_cpu_port_num                    : integer := -1; --TODO: get rid of this
     g_match_req_fifo_size             : integer                        := 32;    
     g_port_mask_bits                  : integer;
     g_rmon_events_bits_pp             : integer := 8); -- rmon events num ber per port
@@ -265,6 +265,8 @@ architecture behavioral of xwrsw_rtu_new is
   signal cpu_port_mask                      : std_logic_vector(c_rtu_max_ports - 1 downto 0);
   
   signal rsp                                : t_rtu_response_array(g_num_ports-1 downto 0);
+  signal htab_port : std_logic_vector(g_num_ports - 1 downto 0);
+  signal htab_src_dst : std_logic;
 begin 
 
   zeros                    <= (others => '0');
@@ -507,6 +509,8 @@ begin
       htab_fid_o           => htab_fid,
       htab_drdy_i          => htab_drdy,
       htab_entry_i         => htab_entry,
+      htab_port_o    => htab_port,    -- ML (24/03/2013): aging bugfix
+      htab_src_dst_o => htab_src_dst, -- ML (24/03/2013): aging bugfix
 
       rtu_ufifo_wr_req_o   => regs_towb.ufifo_wr_req_i,
       rtu_ufifo_wr_full_i  => regs_fromwb.ufifo_wr_full_o,
@@ -546,6 +550,8 @@ begin
   mfifo_trigger <= regs_fromwb.gcr_mfifotrig_o and regs_fromwb.gcr_mfifotrig_load_o;
 
   U_Lookup : rtu_lookup_engine
+    generic map (
+      g_num_ports => g_num_ports)
     port map (
       clk_sys_i   => clk_sys_i,
       clk_match_i => clk_sys_i,
@@ -565,6 +571,8 @@ begin
       mac_i   => htab_mac,
       fid_i   => htab_fid,
       drdy_o  => htab_drdy,
+      port_i  => htab_port,      -- ML (24/03/2013): aging bugfix
+      src_dst_i => htab_src_dst, -- ML (24/03/2013): aging bugfix      
       entry_o => htab_entry
       );
 
diff --git a/testbench/scb_top/main.sv b/testbench/scb_top/main.sv
index f592cd8cb7dc98c5234a9a19b2f7ebda12037e10..2f4f6cd81290d8ba4207effb75d7c1375285fd7d 100644
--- a/testbench/scb_top/main.sv
+++ b/testbench/scb_top/main.sv
@@ -2005,10 +2005,10 @@ module main;
       rtu.enable();
       $display(">>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
       ///TRU
-      tru = new(cpu_acc, 'h57000,g_num_ports,1);      
+      tru = new(cpu_acc, 'h58000,g_num_ports,1);      
       init_tru(tru);
       
-      tatsu=new(cpu_acc, 'h58000);
+      tatsu=new(cpu_acc, 'h59000);
       if(g_tatsu_config == 1)
         tatsu.drop_at_HP_enable();
       fork