diff --git a/src/com/t_oster/liblasercut/drivers/GenericGcodeDriver.java b/src/com/t_oster/liblasercut/drivers/GenericGcodeDriver.java
index 9f4ff0824c0cdbe00291e2497d818891d6fc8c4d..2ad59876e6b2a743fe6e13a2e578c805cdfd2ebf 100644
--- a/src/com/t_oster/liblasercut/drivers/GenericGcodeDriver.java
+++ b/src/com/t_oster/liblasercut/drivers/GenericGcodeDriver.java
@@ -357,6 +357,7 @@ public class GenericGcodeDriver extends LaserCutter {
     String line = "";
     while ("".equals(line))
     {//skip empty lines
+      //TODO: Add Timeout
       line = in.readLine();
     }
     System.out.println("< "+line);//TODO: remove
@@ -373,11 +374,16 @@ public class GenericGcodeDriver extends LaserCutter {
   {
     if (getIdentificationLine() != null && getIdentificationLine().length() > 0)
     {
-      String line = waitForLine();
-      if (!getIdentificationLine().equals(line))
+      String line = "";
+      for (int trials = 3; trials > 0; trials--)
       {
-        return line;
+        line = waitForLine();
+        if (line.startsWith(getIdentificationLine()))
+        {
+          return null;
+        }
       }
+      return line;
     }
     return null;
   }