diff --git a/src/main/java/org/sablecc/sablecc/Transitions.java b/src/main/java/org/sablecc/sablecc/Transitions.java
index e612a83ae812a23fe697aa56889422b76ae02e8f..56fd8c0eac540dccf05b30aaf115b5bc90daa07a 100644
--- a/src/main/java/org/sablecc/sablecc/Transitions.java
+++ b/src/main/java/org/sablecc/sablecc/Transitions.java
@@ -73,13 +73,17 @@ public class Transitions extends DepthFirstAdapter
   @Override
   public void outAStateList(AStateList node)
   {
-    map.put(state, transition);
+    if (!state.equals(transition)) {
+      map.put(state, transition);
+    }
   }
 
   @Override
   public void outAStateListTail(AStateListTail node)
   {
-    map.put(state, transition);
+    if (!state.equals(transition)) {
+      map.put(state, transition);
+    }
   }
 
   @Override
diff --git a/src/main/java/org/sablecc/sablecc/lexer/Lexer.java b/src/main/java/org/sablecc/sablecc/lexer/Lexer.java
index 32c197b53ddebddf646664391533771079f76fbc..f8787a26177974615f484c54a4ad8aede6f99fa4 100644
--- a/src/main/java/org/sablecc/sablecc/lexer/Lexer.java
+++ b/src/main/java/org/sablecc/sablecc/lexer/Lexer.java
@@ -183,10 +183,6 @@ public class Lexer
 
                     case 0:
                         tok = new TPkgId(getText(acceptLength), startLine + 1, startPos + 1);
-                        switch(state.ordinal())
-                        {
-                            case 1: state = State.PACKAGE; break;
-                        }
                         break;
 
                     case 1:
@@ -257,7 +253,6 @@ public class Lexer
                         tok = new TSemicolon(startLine + 1, startPos + 1);
                         switch(state.ordinal())
                         {
-                            case 0: state = State.NORMAL; break;
                             case 1: state = State.NORMAL; break;
                         }
                         break;