Index: trunk/FACT++/src/StateMachineDim.cc
===================================================================
--- trunk/FACT++/src/StateMachineDim.cc	(revision 13834)
+++ trunk/FACT++/src/StateMachineDim.cc	(revision 13835)
@@ -21,4 +21,5 @@
 
 #include "EventDim.h"
+#include "ServiceDim.h"
 
 using namespace std;
@@ -81,7 +82,12 @@
 //! For parameter description see StateMachineImp.
 //!
-EventImp *StateMachineDim::CreateEvent(int targetstate, const char *name, const char *fmt)
-{
-    return new EventDim(targetstate, GetName()+"/"+name, fmt, this);
+EventImp *StateMachineDim::CreateEvent(const char *name, const char *fmt)
+{
+    return new EventDim(GetName()+"/"+name, fmt, this);
+}
+
+EventImp *StateMachineDim::CreateService(const char *name)
+{
+    return new ServiceDim(name, this);
 }
 
@@ -150,4 +156,16 @@
 {
     dim_unlock();
+}
+
+void StateMachineDim::infoHandler()
+{
+    DimInfo *inf = getInfo();
+    if (!inf)
+        return;
+
+    const EventImp *evt = dynamic_cast<EventImp*>(inf);
+
+    if (HasEvent(evt))
+        PostEvent(*evt);
 }
 
Index: trunk/FACT++/src/StateMachineDim.h
===================================================================
--- trunk/FACT++/src/StateMachineDim.h	(revision 13834)
+++ trunk/FACT++/src/StateMachineDim.h	(revision 13835)
@@ -54,5 +54,5 @@
 #include "StateMachine.h"     // StateMachien
 
-class StateMachineDim : public DimCommandHandler, public DimLog, public DimStart, public StateMachineImp
+class StateMachineDim : public DimCommandHandler, public DimInfoHandler, public DimLog, public DimStart, public StateMachineImp
 {
 private:
@@ -66,6 +66,8 @@
     void exitHandler(int code);  /// Overwritten DimCommand::exitHandler.
     void commandHandler();       /// Overwritten DimCommand::commandHandler 
+    void infoHandler();          /// Overwritten DimInfo::infoHandler
 
-    EventImp *CreateEvent(int targetstate, const char *name, const char *fmt);
+    EventImp *CreateEvent(const char *name, const char *fmt);
+    EventImp *CreateService(const char *name);
 
 protected:
