Index: trunk/lib/generic_llsc_global_table/include/generic_llsc_global_table.h
===================================================================
--- trunk/lib/generic_llsc_global_table/include/generic_llsc_global_table.h	(revision 511)
+++ trunk/lib/generic_llsc_global_table/include/generic_llsc_global_table.h	(revision 512)
@@ -319,5 +319,7 @@
     {
         // making all slots available by reseting all valid bits
-        std::memset(r_val, 0, sizeof(*r_val)*nb_slots);
+        std::memset(r_val,  0, sizeof((*r_val) * nb_slots));
+        std::memset(r_addr, 0, sizeof((*r_addr) * nb_slots));
+        std::memset(r_key,  0, sizeof((*r_key) * nb_slots));
 
         // init registers
Index: trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp
===================================================================
--- trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp	(revision 511)
+++ trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp	(revision 512)
@@ -777,6 +777,7 @@
     /////////////////////////////////
     {
+        delete [] m_seg;
+
         delete [] r_ixr_rsp_to_xram_rsp_rok;
-
         delete [] r_xram_rsp_victim_data;
         delete [] r_xram_rsp_to_tgt_rsp_data;
@@ -788,4 +789,13 @@
         delete [] r_write_be;
         delete [] r_write_to_cc_send_data;
+        delete [] r_write_to_cc_send_be;
+
+        delete [] r_cas_data;
+        delete [] r_cas_rdata;
+
+        delete [] r_ixr_cmd_wdata;
+        delete [] m_debug_previous_data;
+        delete [] m_debug_data;
+
         print_stats();
     }
@@ -2732,5 +2742,5 @@
 
                             size_t index    = r_write_word_index.read();
-                            bool sc_success = m_llsc_table.sc(r_write_address.read()    ,
+                            bool sc_success = m_llsc_table.sc(r_write_address.read(),
                                     r_write_data[index].read());
 
Index: trunk/platforms/tsar_generic_xbar/top.cpp
===================================================================
--- trunk/platforms/tsar_generic_xbar/top.cpp	(revision 511)
+++ trunk/platforms/tsar_generic_xbar/top.cpp	(revision 512)
@@ -951,4 +951,5 @@
 
    
+   // Free memory
    for (size_t i = 0; i  < (XMAX * YMAX); i++)
    {
@@ -957,4 +958,17 @@
       delete clusters[x][y];
    }
+
+   dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_cmd_inc, XMAX - 1, YMAX, 3);
+   dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_cmd_dec, XMAX - 1, YMAX, 3);
+   dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_h_rsp_inc, XMAX - 1, YMAX, 2);
+   dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_h_rsp_dec, XMAX - 1, YMAX, 2);
+   dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_cmd_inc, XMAX, YMAX - 1, 3);
+   dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_cmd_dec, XMAX, YMAX - 1, 3);
+   dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_v_rsp_inc, XMAX, YMAX - 1, 2);
+   dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_v_rsp_dec, XMAX, YMAX - 1, 2);
+   dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_false_cmd_in, XMAX, YMAX, 4, 3);
+   dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_false_cmd_out, XMAX, YMAX, 4, 3);
+   dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_false_rsp_in, XMAX, YMAX, 4, 2);
+   dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_false_rsp_out, XMAX, YMAX, 4, 2);
 
    return EXIT_SUCCESS;
Index: trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp
===================================================================
--- trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp	(revision 511)
+++ trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp	(revision 512)
@@ -789,4 +789,9 @@
                                                  vci_param_ext>::~TsarXbarCluster() {
 
+    dealloc_elems<DspinInput<dspin_cmd_width> > (p_cmd_in, 4, 3);
+    dealloc_elems<DspinOutput<dspin_cmd_width> >(p_cmd_out, 4, 3);
+    dealloc_elems<DspinInput<dspin_rsp_width> > (p_rsp_in, 4, 2);
+    dealloc_elems<DspinOutput<dspin_rsp_width> >(p_rsp_out, 4, 2);
+
     for (size_t p = 0; p < n_procs; p++)
     {
