Index: /trunk/FACT++/src/InterpreterV8.cc
===================================================================
--- /trunk/FACT++/src/InterpreterV8.cc	(revision 18832)
+++ /trunk/FACT++/src/InterpreterV8.cc	(revision 18833)
@@ -1696,5 +1696,16 @@
 
     string irq = p==string::npos?str:str.substr(0, p);
-    const map<string,string> data = Tools::Split(irq, true);
+
+    map<string,string> data;
+    try
+    {
+        data = Tools::Split(irq, true);
+    }
+    catch (const exception &e)
+    {
+        irq = "ERROR";
+        data["0"] = e.what();
+        JsWarn("Couldn't parse interrupt: "+irq+" ["+string(e.what())+"]");
+    }
 
     Local<Value>  irq_str = String::New(irq.c_str());
Index: /trunk/FACT++/src/Readline.cc
===================================================================
--- /trunk/FACT++/src/Readline.cc	(revision 18832)
+++ /trunk/FACT++/src/Readline.cc	(revision 18833)
@@ -1370,19 +1370,26 @@
 void Readline::ProcessLine(const string &str)
 {
-    const string cmd = Tools::Uncomment(str);
-
-    if (!cmd.empty())
-    {
-        const bool rc = PreProcess(cmd);
-
-        AddToHistory(cmd);
-
-        if (rc)
-            return;
-
-        fLine++;
-    }
-
-    fCommandLog << str << endl;
+    try
+    {
+        const string cmd = Tools::Uncomment(str);
+
+        if (!cmd.empty())
+        {
+            const bool rc = PreProcess(cmd);
+
+            AddToHistory(cmd);
+
+            if (rc)
+                return;
+
+            fLine++;
+        }
+
+        fCommandLog << str << endl;
+    }
+    catch (const exception &e)
+    {
+        PrintReadlineError("Couldn't parse: "+str+" ["+string(e.what())+"]");
+    }
 }
 
