diff --git a/libkc3/data.c b/libkc3/data.c
index b45c5c0..047746d 100644
--- a/libkc3/data.c
+++ b/libkc3/data.c
@@ -278,6 +278,10 @@ bool data_clean (const s_sym *type, void *data)
if (type == &g_sym_Sym) {
return true;
}
+ if (type == &g_sym_Tag) {
+ tag_clean(data);
+ return true;
+ }
if (type == &g_sym_Tuple) {
tuple_clean(data);
return true;
diff --git a/libkc3/sym.c b/libkc3/sym.c
index 666284b..642e748 100644
--- a/libkc3/sym.c
+++ b/libkc3/sym.c
@@ -515,6 +515,10 @@ bool sym_must_clean (const s_sym *sym, bool *must_clean)
*must_clean = false;
return true;
}
+ if (sym == &g_sym_Cfn) {
+ *must_clean = true;
+ return true;
+ }
if (sym == &g_sym_Character) {
*must_clean = false;
return true;