diff --git a/src/main/java/org/sablecc/sablecc/GenParser.java b/src/main/java/org/sablecc/sablecc/GenParser.java
index 98bcc81d5b59ba2fbad6f9f45743472fa86fe8f6..7799a6f8d877c7a79119d39bf1861ea3775afcc1 100644
--- a/src/main/java/org/sablecc/sablecc/GenParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenParser.java
@@ -414,7 +414,8 @@ public class GenParser extends DepthFirstAdapter
                                                file, transformIds, CG, CTP,
                                                simpleTermTransform, macros,
                                                listSimpleTermTransform,
-                                               transformIds.simpleTermOrsimpleListTermTypes);
+                                               transformIds.simpleTermOrsimpleListTermTypes,
+                                               stack.size());
         node.apply(aParsedAltAdapter);
       }
 
diff --git a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
index 633ef58a59a0f849ce8e0e9914bdb6c725b0b892..0e6443849ba398fd0bad488e716e451633eb3482 100644
--- a/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
+++ b/src/main/java/org/sablecc/sablecc/GenerateAlternativeCodeForParser.java
@@ -30,7 +30,6 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
   private Map<Node, String> simpleTermTransformMap;
   private List<Node> listSimpleTermTransform;
   private Map<Node, String> simpleTermOrsimpleListTermTypes;
-
   private int popCount;
 
   GenerateAlternativeCodeForParser(File pkgDir, String aParsedAltName,
@@ -42,7 +41,8 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
                                    Map<Node, String> simpleTermTransformMap,
                                    MacroExpander macros,
                                    List<Node> listSimpleTermTransform,
-                                   Map<Node, String> simpleTermOrsimpleListTermTypes)
+                                   Map<Node, String> simpleTermOrsimpleListTermTypes,
+                                   int popCount)
   {
     this.pkgDir = pkgDir;
     this.file = file;
@@ -55,13 +55,7 @@ public class GenerateAlternativeCodeForParser extends DepthFirstAdapter
     this.macros = macros;
     this.listSimpleTermTransform = listSimpleTermTransform;
     this.simpleTermOrsimpleListTermTypes = simpleTermOrsimpleListTermTypes;
-
-    this.popCount = 0;
-  }
-
-  @Override
-  public void caseAElem(final AElem node) {
-    popCount++;
+    this.popCount = popCount;
   }
 
   private String lookupInternalTypeName(Node term) {