diff --git a/build.gradle b/build.gradle
index d93faf13b05c46f29a9284156ad042874ee3a1fc..4a3549575f489cf610567d629d02c502422f66a4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@ apply plugin: 'eclipse'
 apply plugin: 'maven'
 
 
-project.version = '3.2.6'
+project.version = '3.2.8'
 project.group = 'de.stups'
 
 repositories {
diff --git a/src/main/resources/org/sablecc/sablecc/lexer.txt b/src/main/resources/org/sablecc/sablecc/lexer.txt
index 407382717a356c6c6045b656f0f90b10d04dc1c4..e0908c0285386fe1b12e8f3cef6540b705ba7d18 100644
--- a/src/main/resources/org/sablecc/sablecc/lexer.txt
+++ b/src/main/resources/org/sablecc/sablecc/lexer.txt
@@ -46,9 +46,14 @@ public class Lexer implements ITokenListContainer
     private final StringBuffer text = new StringBuffer();
     
 	private List<IToken> tokenList;
+    private final Queue<IToken> nextList = new LinkedBlockingQueue<IToken>();
 
 	private IToken tok;
 
+    public Queue<IToken> getNextList() {
+        return nextList;
+    }
+
 	public List<IToken> getTokenList() {
 		return tokenList;
 	}
@@ -74,6 +79,7 @@ public class Lexer implements ITokenListContainer
        filter();
        if (token != null) {
 	          getTokenList().add(token); 
+              nextList.add(token);
 	   }
     }
 
@@ -92,7 +98,7 @@ public class Lexer implements ITokenListContainer
             filterWrap();
         }
 
-        return this.token;
+        return (Token) nextList.peek();
     }
 
     public Token next() throws LexerException, IOException
@@ -103,7 +109,7 @@ public class Lexer implements ITokenListContainer
             filterWrap();
         }
 
-        Token result = this.token;
+        Token result = (Token) nextList.poll();
         this.setToken(null);
         return result;
     }
diff --git a/src/main/resources/org/sablecc/sablecc/utils.txt b/src/main/resources/org/sablecc/sablecc/utils.txt
index 71cf7cd5711fb32591533a269c2420cfff58c752..98c8db0768659846510d232e57a324fc00bda5df 100644
--- a/src/main/resources/org/sablecc/sablecc/utils.txt
+++ b/src/main/resources/org/sablecc/sablecc/utils.txt
@@ -309,13 +309,13 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab
         return null;
     }
 
-    protected <T> List<T> cloneList(List<T> list)
+    protected <T extends Node> List<T> cloneList(List<T> list)
     {
         List<T> clone = new LinkedList<T>();
 
         for(T n : list)
         {
-            clone.add(n);
+            clone.add((T) n.clone());
         }
 
         return clone;