Index: trunk/FACT++/src/Readline.cc
===================================================================
--- trunk/FACT++/src/Readline.cc	(revision 10330)
+++ trunk/FACT++/src/Readline.cc	(revision 10331)
@@ -1041,7 +1041,8 @@
 {
     char *buf = readline(prompt.c_str());
+
     Shutdown(buf ? buf : "");
 
-    const string str = buf ? TrimSpaces(buf) : ".q";
+    const string str = !buf || (rl_done && rl_pending_input) ? ".q" : TrimSpaces(buf);
 
     free(buf);
@@ -1095,2 +1096,8 @@
     }
 }
+
+void Readline::Stop()
+{
+    rl_done          = 1;
+    rl_pending_input = 1;
+}
Index: trunk/FACT++/src/Readline.h
===================================================================
--- trunk/FACT++/src/Readline.h	(revision 10330)
+++ trunk/FACT++/src/Readline.h	(revision 10331)
@@ -87,4 +87,5 @@
     virtual std::string Prompt(const std::string &prompt);
     virtual void Run(const char *prompt=0);
+    static  void Stop();
 
     int GetLine() const { return fLine; }
