diff --git a/src/main/java/org/sablecc/sablecc/node/Node.java b/src/main/java/org/sablecc/sablecc/node/Node.java
index c04d51db5c55fc710a792bcb03ac1fe87024989d..816c105ac6f3fceb47930e0fdf8186167b3c7cb0 100644
--- a/src/main/java/org/sablecc/sablecc/node/Node.java
+++ b/src/main/java/org/sablecc/sablecc/node/Node.java
@@ -5,7 +5,6 @@ package org.sablecc.sablecc.node;
 import java.util.*;
 import de.hhu.stups.sablecc.patch.PositionedNode;
 
-@SuppressWarnings({"rawtypes","unchecked"})
 public abstract class Node extends PositionedNode implements Switchable, Cloneable
 {
     private Node parent;
@@ -52,19 +51,19 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab
         return "";
     }
 
-    protected String toString(List list)
+    protected String toString(List<?> list)
     {
         StringBuffer s = new StringBuffer();
 
-        for(Iterator i = list.iterator(); i.hasNext();)
+        for(Object o : list)
         {
-            s.append(i.next());
+            s.append(o);
         }
 
         return s.toString();
     }
 
-
+    @SuppressWarnings("unchecked")
     protected <T extends Node> T cloneNode(T node)
     {
         if(node != null)
@@ -75,6 +74,7 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab
         return null;
     }
 
+    @SuppressWarnings("unchecked")
     protected <T extends Node> List<T> cloneList(List<T> list)
     {
         List<T> clone = new LinkedList<T>();
diff --git a/src/main/resources/org/sablecc/sablecc/utils.txt b/src/main/resources/org/sablecc/sablecc/utils.txt
index c0c38cc62e86c2bfce4944a9553213eb88be955b..9c698dc3d793b18590b2454355485aa8279bb159 100644
--- a/src/main/resources/org/sablecc/sablecc/utils.txt
+++ b/src/main/resources/org/sablecc/sablecc/utils.txt
@@ -326,7 +326,6 @@ package $0$;
 import java.util.*;
 import de.hhu.stups.sablecc.patch.PositionedNode;
 
-@SuppressWarnings({"rawtypes","unchecked"})
 public abstract class Node extends PositionedNode implements Switchable, Cloneable
 {
     private Node parent;
@@ -373,19 +372,19 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab
         return "";
     }
 
-    protected String toString(List list)
+    protected String toString(List<?> list)
     {
         StringBuffer s = new StringBuffer();
 
-        for(Iterator i = list.iterator(); i.hasNext();)
+        for(Object o : list)
         {
-            s.append(i.next());
+            s.append(o);
         }
 
         return s.toString();
     }
 
-
+    @SuppressWarnings("unchecked")
     protected <T extends Node> T cloneNode(T node)
     {
         if(node != null)
@@ -396,6 +395,7 @@ public abstract class Node extends PositionedNode implements Switchable, Cloneab
         return null;
     }
 
+    @SuppressWarnings("unchecked")
     protected <T extends Node> List<T> cloneList(List<T> list)
     {
         List<T> clone = new LinkedList<T>();