diff --git a/libasn1fix/asn1fix_internal.h b/libasn1fix/asn1fix_internal.h
index 2d22d304b5d53ff896749d4f5635cf1641e2507b..4e13293a46a4028b7c391f8408a59d6c1b515f67 100644
--- a/libasn1fix/asn1fix_internal.h
+++ b/libasn1fix/asn1fix_internal.h
@@ -105,6 +105,7 @@ typedef struct arg_s {
         arg->mod = tmp_mod;                                   \
         arg->ns = asn1_namespace_new_from_module(tmp_mod, 1); \
         typeof(code) ret = code;                              \
+        asn1_namespace_free(arg->ns);                         \
         arg->ns = _saved_ns;                                  \
         arg->mod = _saved_mod;                                \
         ret;                                                  \