diff --git a/sylvan_common.c b/sylvan_common.c
index 7aa7d7ed291e8307e0db886264abe2948b6c2e07..091103332e1bf1f3f7755e40af780ce8223b57d2 100755
--- a/sylvan_common.c
+++ b/sylvan_common.c
@@ -271,6 +271,7 @@ VOID_TASK_IMPL_0(sylvan_gc)
  */
 
 llmsset_t nodes;
+uint32_t g_created=0;
 
 static size_t table_min = 0, table_max = 0, cache_min = 0, cache_max = 0;
 
diff --git a/sylvan_int.h b/sylvan_int.h
index 008541b5f5b09a46f85696f0dbc61238b6a611b0..39c14327bbe69ddb4bb09f262534876803dc8e5f 100755
--- a/sylvan_int.h
+++ b/sylvan_int.h
@@ -44,7 +44,7 @@ extern "C" {
  * Nodes table.
  */
 extern llmsset_t nodes;
-
+extern uint32_t g_created;
 /**
  * Macros for all operation identifiers for the operation cache
  */
diff --git a/sylvan_ldd.c b/sylvan_ldd.c
index efbc02aa8abf184c28047449875851c437e072db..ffbe08a53055474d2b9e4970629fbe441aa5466f 100755
--- a/sylvan_ldd.c
+++ b/sylvan_ldd.c
@@ -388,7 +388,10 @@ lddmc_makenode(uint32_t value, MDD ifeq, MDD ifneq)
         }
     }
 
-    if (created) sylvan_stats_count(LDD_NODES_CREATED);
+    if (created) {
+        sylvan_stats_count(LDD_NODES_CREATED);
+
+    }
     else sylvan_stats_count(LDD_NODES_REUSED);
 
     return (MDD)index;
@@ -3020,7 +3023,6 @@ lddmc_test_ismdd(MDD mdd)
 void init_gc_seq()
 {
     LACE_ME;
-    LOCALIZE_THREAD_LOCAL(lddmc_refs_key, lddmc_refs_internal_t);
     sequentiel_refs=lddmc_refs_key;
 }
 
@@ -3075,9 +3077,9 @@ void llmsset_destroy_unmarked_seq( llmsset_t dbs)
 
 void sylvan_gc_seq()
 {
-    if (seq_llmsset_count_marked(nodes)>llmsset_get_size(nodes)/2)
+    if (g_created>llmsset_get_size(nodes)/2)
     {
-    	//printf("GC active \n ");
+    	g_created=seq_llmsset_count_marked(nodes);
         cache_clear();
         llmsset_clear_data_seq(nodes);
         ldd_gc_mark_protected();
@@ -3208,13 +3210,5 @@ ldd_gc_mark_rec(MDD mdd)
     }
 }
 
-void  displayMDDTableInfo()
-{
-    printf("%zu of %zu buckets filled!\n", seq_llmsset_count_marked(nodes), llmsset_get_size(nodes));
-}
-int isGCRequired()
-{
-    return (seq_llmsset_count_marked(nodes)>llmsset_get_size(nodes)/2);
-}
 
 #endif
diff --git a/sylvan_ldd.h b/sylvan_ldd.h
index 62d76f87305894a20832fe953d29c115e86de0af..4ff20e10716ead1b8e688ed78e0f47cf522c10ad 100755
--- a/sylvan_ldd.h
+++ b/sylvan_ldd.h
@@ -312,8 +312,7 @@ void __attribute__((unused)) ldd_refs_pop(long amount);
 
 
 
-void  displayMDDTableInfo();
-int isGCRequired();
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/sylvan_seq.c b/sylvan_seq.c
index d10dddfb1b0bcf863e08d7e5ac2a546be8645392..b263ea4c1d75f1e3e70970aa91150f86adaeacb9 100755
--- a/sylvan_seq.c
+++ b/sylvan_seq.c
@@ -556,4 +556,3 @@ MDD ldd_divide_rec(MDD a, int level)
 
 
 
-
diff --git a/sylvan_seq.h b/sylvan_seq.h
index e355166e8fcdbea467ac8e364cc15fe5fdab521b..46ed7014e8b8f568c559304220feb4bab7704a92 100755
--- a/sylvan_seq.h
+++ b/sylvan_seq.h
@@ -38,6 +38,7 @@ MDD ldd_divide_rec(MDD a, int level);
 MDD ldd_divide_internal(MDD a,int current_level,int level);
 
 void sylvan_gc_seq();
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/sylvan_table.c b/sylvan_table.c
index 623dadce91374b49aa70477dba8eedff53436b31..299cef1214506c6b76af806b4701361d5468acbb 100755
--- a/sylvan_table.c
+++ b/sylvan_table.c
@@ -167,6 +167,7 @@ llmsset_lookup2(const llmsset_t dbs, uint64_t a, uint64_t b, int* created, const
             if (cas(bucket, 0, hash | cidx)) {
                 if (custom) set_custom_bucket(dbs, cidx, custom);
                 *created = 1;
+                g_created++;
                 return cidx;
             } else {
                 v = *bucket;