diff --git a/compiler2/asn1/AST_asn1.cc b/compiler2/asn1/AST_asn1.cc
index 4503ef0dcc9a84f926b09cae669888c6f45df1bf..f2086da7133d06cab229bc681fcbb2f36156482b 100644
--- a/compiler2/asn1/AST_asn1.cc
+++ b/compiler2/asn1/AST_asn1.cc
@@ -647,6 +647,8 @@ namespace Asn {
         "  return TRUE;\n"
         "}\n", get_modid().get_ttcnname().c_str(), print_str,
         get_modid().get_ttcnname().c_str(), overwrite_str);
+      Free(print_str);
+      Free(overwrite_str);
     }
   }
 
diff --git a/compiler2/ttcn3/AST_ttcn3.cc b/compiler2/ttcn3/AST_ttcn3.cc
index b2168d441ce80ff32814bbd18c70e76010102213..45562f57bbd2acd8a791d7dde5d832d53d437d34 100644
--- a/compiler2/ttcn3/AST_ttcn3.cc
+++ b/compiler2/ttcn3/AST_ttcn3.cc
@@ -2970,6 +2970,7 @@ namespace Ttcn {
         "  }\n"
         "  return TTCN_Logger::end_event_log2str();\n"
         "}\n", get_modid().get_ttcnname().c_str(), print_str);
+      Free(print_str);
     }
     if (overwrite_str != NULL) {
       // don't generate an empty overwriting function
@@ -2986,6 +2987,7 @@ namespace Ttcn {
         "  }\n"
         "  return TRUE;\n"
         "}\n", get_modid().get_ttcnname().c_str(), overwrite_str);
+      Free(overwrite_str);
     }
   }