diff --git a/src/parsers/epsilon.c b/src/parsers/epsilon.c
index b0b31c7ddddf97261f44af3ff8b9ff0654d49cf9..dc6d7a6db8b294dfab3b636ee72af5d7b4e7e646 100644
--- a/src/parsers/epsilon.c
+++ b/src/parsers/epsilon.c
@@ -12,9 +12,11 @@ static const HParserVtable epsilon_vt = {
   .parse = parse_epsilon,
 };
 
+static const HParser epsilon_p = {
+  .vtable = &epsilon_vt,
+  .env = NULL
+};
+
 const HParser* h_epsilon_p() {
-  HParser *res = g_new(HParser, 1);
-  res->vtable = &epsilon_vt;
-  res->env = NULL;
-  return res;
+  return &epsilon_p;
 }