diff --git a/preprocessor/macro/MacroDriver.cc b/preprocessor/macro/MacroDriver.cc
index 6ac13b02a8b8c682d3bd697f458db035e3c7cca6..a7c900bd193f1d1defd4ade23e59e8d1a6bffeb7 100644
--- a/preprocessor/macro/MacroDriver.cc
+++ b/preprocessor/macro/MacroDriver.cc
@@ -170,15 +170,11 @@ MacroDriver::begin_ifdef(const string &name)
   try
     {
       get_variable(name);
-      const MacroValue *one = new IntMV(*this, 1);
-      begin_if(one);
-      delete one;
+      begin_if(new IntMV(*this, 1));
     }
   catch (UnknownVariable &)
     {
-      const MacroValue *zero = new IntMV(*this, 0);
-      begin_if(zero);
-      delete zero;
+      begin_if(new IntMV(*this, 0));
     }
 }