diff --git a/lib/modules/Parser.pmod/C.pmod b/lib/modules/Parser.pmod/C.pmod
index ff2310efaf91d09374c59acc7f1968d2722a1850..e18056485bc5203db23b34f3bf52e984573ce20c 100644
--- a/lib/modules/Parser.pmod/C.pmod
+++ b/lib/modules/Parser.pmod/C.pmod
@@ -173,7 +173,7 @@ array(string) split(string data)
 	  if(data[pos]=='\\') pos++;
           int end=search(data, "'", pos+1)+1;
           if(!end)
-            throw( ({sprintf("Unknown token %O\n",data[pos..pos+20]) }) );
+            throw( ({sprintf("Unknown token %O\n",data[pos-1..pos+19]) }) );
           pos=end;
           break;
 
diff --git a/lib/modules/Parser.pmod/Pike.pmod b/lib/modules/Parser.pmod/Pike.pmod
index 4fa94b06bbaa9a6761d592512949e05d407e0895..8f8f8029002ea16825421fb642a0999448470215 100644
--- a/lib/modules/Parser.pmod/Pike.pmod
+++ b/lib/modules/Parser.pmod/Pike.pmod
@@ -205,8 +205,10 @@ array(string) split(string data)
 	  pos++;
 	  if(data[pos]=='\\') pos++;
           int end=search(data, "'", pos)+1;
-          if (!end)
+          if (!end) {
+            --pos;
             UNKNOWN_TOKEN;
+          }
           pos=end;
 	  break;