diff --git a/lib/modules/Parser.pmod/Pike.pmod b/lib/modules/Parser.pmod/Pike.pmod
index f86665a8637174d6788d71ccc3d1e8e1bf9cd83e..a4010e9b6e1640726ae5ccf94206a6ed8bbc9a26 100644
--- a/lib/modules/Parser.pmod/Pike.pmod
+++ b/lib/modules/Parser.pmod/Pike.pmod
@@ -106,9 +106,7 @@ array(string) split(string data)
 	break;
 
       default:
-	werror("%O\n",ret);
-	werror("Unknown token %O\n",data[pos..pos+20]);
-	exit(1);
+	throw( ({sprintf("Unknown token %O\n",data[pos..pos+20]) }) );
 
       case  '`':
 	while(data[pos]=='`') data[pos]++;