Index: trunk/FACT++/src/RemoteControl.h
===================================================================
--- trunk/FACT++/src/RemoteControl.h	(revision 11050)
+++ trunk/FACT++/src/RemoteControl.h	(revision 11051)
@@ -130,6 +130,7 @@
         lout << kBold << "   svc,services " << kReset << "List all services in the network." << endl;
         lout << kBold << "   st,states    " << kReset << "List all states in the network." << endl;
+        lout << kBold << "   # <text>     " << kReset << "Echo <text> to the output stream" << endl;
         lout << kBold << "   .s           " << kReset << "Wait for the state-machine to change to the given state." << endl;
-        lout <<          "                "              "     .s <server> <state> [<timeout>]" << endl;
+        lout <<          "                "              "     .s <server> [<state> [<timeout>]]" << endl;
         lout <<          "                "              "<server>  The server for which state to wait (e.g. FTM_CONTROL)" << endl;
         lout <<          "                "              "<state>   The state id (see 'states') for which to wait (e.g. 3)" << endl;
@@ -194,9 +195,15 @@
             }
 
-            const Time timeout = Time()+boost::posix_time::millisec(ms);
+            const Time timeout = ms<=0 ? Time(Time::none) : Time()+boost::posix_time::millisec(ms);
 
             while (l->second->GetState()!=state && timeout>Time())
                 usleep(1);
 
+            return true;
+        }
+
+        if (str[0]=='#')
+        {
+            lout << Tools::Trim(str.substr(1)) << endl;
             return true;
         }
