diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
index 48f59e33a17bb3ad637f89c947887379c5bb22e4..1318cad8b7ea90c45bc146fe57ad32af7125cd38 100644
--- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
@@ -124,19 +124,22 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
 
         position = CG.getTermNumbers().get(term);
 
-        if(type_name.startsWith("L"))
+        if("null".equals(type_name))
         {
-          type_name = "list";
-        }
-        else if(type_name.equals("null"))
-        {
-          type_name = "null";
+          macros.apply(file, "ParserNewBodyListAddNull", null);
         }
         else
         {
-          type_name = type_name.toLowerCase();
+          if(type_name.startsWith("L"))
+          {
+            type_name = "list";
+          }
+          else
+          {
+            type_name = type_name.toLowerCase();
+          }
+          macros.apply(file, "ParserNewBodyListAdd", new String[] {type_name, "" + position});
         }
-        macros.apply(file, "ParserNewBodyListAdd", new String[] {type_name, "" + position});
 
       }
       if (popCount > 0) {
diff --git a/src/main/resources/org/sablecc/sablecc/parser.txt b/src/main/resources/org/sablecc/sablecc/parser.txt
index 0632711d7ecfebd8eecabe76a3fa6b91a3bd32d9..237514633f0125e95f0a17e947f87f17ca8939ce 100644
--- a/src/main/resources/org/sablecc/sablecc/parser.txt
+++ b/src/main/resources/org/sablecc/sablecc/parser.txt
@@ -390,6 +390,11 @@ Macro:ParserNewBodyListAdd
 
 $
 
+Macro:ParserNewBodyListAddNull
+        nodeList.add(null);
+
+$
+
 Macro:ParserNewCheck
         checkResult(nodeList.get(0), nodeArrayList1, nodeArrayList$0$);