Index: trunk/FACT++/src/Readline.cc
===================================================================
--- trunk/FACT++/src/Readline.cc	(revision 11047)
+++ trunk/FACT++/src/Readline.cc	(revision 11048)
@@ -1117,4 +1117,7 @@
 int Readline::Execute(const string &fname)
 {
+    if (IsStopped())
+        return 0;
+
     int rc = 0;
 
@@ -1134,8 +1137,11 @@
             continue;
 
-        if (buffer[0]=='#')
-            continue;
-
         rc++;
+
+        if (buffer=="quit" || buffer==".q")
+        {
+            Stop();
+            break;
+        }
 
         if (Process(buffer))
@@ -1163,2 +1169,7 @@
     rl_pending_input = 4; // EOT (end of transmission, ctrl-d)
 }
+
+bool Readline::IsStopped() const
+{
+    return rl_done==1 && rl_pending_input==4;
+};
Index: trunk/FACT++/src/Readline.h
===================================================================
--- trunk/FACT++/src/Readline.h	(revision 11047)
+++ trunk/FACT++/src/Readline.h	(revision 11048)
@@ -90,5 +90,6 @@
     virtual void Run(const char *prompt=0);
     static  void Stop();
-    int      Execute(const std::string &fname);
+    int          Execute(const std::string &fname);
+    bool         IsStopped() const;
 
     int GetLine() const { return fLine; }
