Index: /trunk/FACT++/src/StateMachineImp.cc
===================================================================
--- /trunk/FACT++/src/StateMachineImp.cc	(revision 10384)
+++ /trunk/FACT++/src/StateMachineImp.cc	(revision 10385)
@@ -124,8 +124,5 @@
     fRunning(false), fExitRequested(0)
 {
-    AddStateName(kSM_NotReady,   "NotReady", "State machine not ready, events are ignored.");
-    AddStateName(kSM_Ready,      "Ready",    "State machine ready to receive events.");
-    AddStateName(kSM_Error,      "ERROR",    "Common error state.");
-    AddStateName(kSM_FatalError, "FATAL",    "A fatal error occured, the eventloop is stopped.");
+    SetDefaultStateNames();
 }
 
@@ -150,4 +147,17 @@
 // --------------------------------------------------------------------------
 //
+//! Sets the default state names. This function should be called in
+//! derived classes again if they overwrite SetStateName().
+//
+void StateMachineImp::SetDefaultStateNames()
+{
+    AddStateName(kSM_NotReady,   "NotReady", "State machine not ready, events are ignored.");
+    AddStateName(kSM_Ready,      "Ready",    "State machine ready to receive events.");
+    AddStateName(kSM_Error,      "ERROR",    "Common error state.");
+    AddStateName(kSM_FatalError, "FATAL",    "A fatal error occured, the eventloop is stopped.");
+}
+
+// --------------------------------------------------------------------------
+//
 //! Puts the given event into the fifo. The fifo will take over ownership.
 //! Access to fEventQueue is encapsulated by fMutex.
@@ -400,5 +410,5 @@
     out << endl;
     for (StateNames::const_iterator i=fStateNames.begin(); i!=fStateNames.end(); i++)
-        out << kBold << setw(5) << i->first << kReset << " - " << kBold << i->second.first << kReset << ": " << i->second.second << endl;
+        out << kBold << setw(5) << i->first << kReset << ": " << kYellow << i->second.first << kBlue << " (" << i->second.second << ")" << endl;
     out << endl;
 }
@@ -659,5 +669,7 @@
 //! readable for to the user, a string can be assigned to each state.
 //! For each state this function can be called only once, i.e. state name
-//! cannot be overwritten. Negative states are ignore.d
+//! cannot be overwritten.
+//!
+//! Be aware that two states should not have the same name!
 //!
 //! @param state
@@ -670,6 +682,4 @@
 //!    A explanatory text describing the state
 //!
-//! @todo  FIX THE DOCU
-//
 void StateMachineImp::AddStateName(const int state, const std::string &name, const std::string &doc)
 {
Index: /trunk/FACT++/src/StateMachineImp.h
===================================================================
--- /trunk/FACT++/src/StateMachineImp.h	(revision 10384)
+++ /trunk/FACT++/src/StateMachineImp.h	(revision 10385)
@@ -80,5 +80,7 @@
     EventImp &AddConfiguration(const char *name, const char *fmt, int s1=-1, int s2=-1, int s3=-1, int s4=-1, int s5=-1);
 
-    void AddStateName(const int state, const std::string &name, const std::string &doc="");
+    virtual void AddStateName(const int state, const std::string &name, const std::string &doc="");
+
+    void SetDefaultStateNames();
 
 public:
