diff --git a/common/utils/T/tracer/logger/logger.c b/common/utils/T/tracer/logger/logger.c
index ab6fb8bc625e97bc0f5b7ea848a8c25c422b463e..ffba2d25c02a3777f1868fa919b81605021577fa 100644
--- a/common/utils/T/tracer/logger/logger.c
+++ b/common/utils/T/tracer/logger/logger.c
@@ -1,5 +1,6 @@
 #include "logger.h"
 #include "logger_defs.h"
+#include "filter/filter.h"
 #include <stdlib.h>
 
 void logger_add_view(logger *_l, view *v)
@@ -13,5 +14,6 @@ void logger_add_view(logger *_l, view *v)
 void logger_set_filter(logger *_l, void *filter)
 {
   struct logger *l = _l;
+  free_filter(l->filter);
   l->filter = filter;
 }