Index: /trunk/FACT++/src/DimState.h
===================================================================
--- /trunk/FACT++/src/DimState.h	(revision 14370)
+++ /trunk/FACT++/src/DimState.h	(revision 14371)
@@ -262,26 +262,24 @@
         scriptdepth = -1;
 
-        // Evaluate msg
-        const size_t p0 = msg.find_first_of(':');
+        // Find begining of descriptor
+        const size_t p0 = msg.find_first_of(' ');
         if (p0==std::string::npos)
             return StateMachineImp::kSM_KeepState;
 
-        // Evaluate scriptdepth
-        const size_t ps = msg.find_first_of('-');
-        if (ps!=std::string::npos)
-            scriptdepth = atoi(msg.c_str()+ps+1);
-
-        // Find filename
-        const size_t p1 = msg.find_last_of('[');
+        // Find begining of filename
+        const size_t p1 = msg.find_first_of(':');
         if (p1==std::string::npos)
             return StateMachineImp::kSM_KeepState;
 
-        const size_t p2 = msg.find_first_of(':', p0+1);
-
-        const size_t p3 = p2==std::string::npos || p2>p1 ? p1-1 : p2;
-
-        file = msg.substr(p0+2, p3-p0-2);
-
-        shortmsg.erase(p0, p3-p0);
+        // Find end of filename
+        const size_t p2 = msg.find_last_of('[');
+        if (p2==std::string::npos)
+            return StateMachineImp::kSM_KeepState;
+
+        scriptdepth = atoi(msg.c_str()+p0+1);
+        file = msg.substr(p1+1, p2-p1-1);
+
+        shortmsg.insert(0, msg.substr(p0+1, p1-p0));
+        shortmsg.erase(p1+1,p2-p0-1);
 
         const int rc = Callback(evt);
