Index: /trunk/FACT++/src/DimState.h
===================================================================
--- /trunk/FACT++/src/DimState.h	(revision 13903)
+++ /trunk/FACT++/src/DimState.h	(revision 13904)
@@ -13,5 +13,5 @@
 public:
     DimState(const string &n, const string s="STATE") : server(n),
-        service(n+"/"+s), info(make_pair(Time(), -4))
+        service(n+"/"+s), info(make_pair(Time(), -256))
     {
     }
@@ -41,5 +41,5 @@
         const bool disconnected = evt.GetSize()==0;
 
-        info = make_pair(evt.GetTime(), disconnected ? -4 : evt.GetQoS());
+        info = make_pair(evt.GetTime(), disconnected ? -256 : evt.GetQoS());
 
         msg = disconnected ? "" : evt.GetString();
@@ -52,7 +52,7 @@
     const int  &state() const { return info.second; }
 
-    bool online() const { return info.second>-4; }
-
-    virtual State description() const { return State(-5, ""); }
+    bool online() const { return info.second>-256; }
+
+    virtual State description() const { return State(-257, ""); }
 };
 
@@ -64,15 +64,15 @@
     out << kBold << s.server;
 
-    if (s.state()==-4)
+    if (s.state()==-256)
         return out << ": Offline";
 
-    if (rc.index==-5)
+    if (rc.index==-257)
         return out;
 
     out << ": ";
 
-    if (rc.index==-2)
-        out << s.state();
-    else
+//    if (rc.index==-2)
+//        out << s.state();
+//    else
         out << rc.name << "[" << rc.index << "]";
 
@@ -106,5 +106,5 @@
         {
             states = State::SplitStates(evt.GetString());
-            states.push_back(State(-4, "Offline"));
+            states.push_back(State(-256, "Offline"));
         }
     }
@@ -116,5 +116,5 @@
                 return *it;
 
-        return State(-5, "n/a");
+        return State(-257, "n/a");
     }
 };
@@ -129,5 +129,5 @@
         DimState::Handler(evt);
 
-        info.second = evt.GetSize()==4 ? evt.GetInt() : -4;
+        info.second = evt.GetSize()==4 ? evt.GetInt() : 0;
     }
 
@@ -157,4 +157,5 @@
     string file;
     string shortmsg;
+    int scriptdepth;
 
     void AddCallback(const string &script, const callback &cb)
@@ -167,6 +168,7 @@
         DimState::Handler(evt);
 
-        shortmsg = msg;
-        file     = "";
+        shortmsg    = msg;
+        file        = "";
+        scriptdepth = -1;
 
         // Evaluate msg
@@ -175,4 +177,10 @@
             return;
 
+        // Evaluate scriptdepth
+        const size_t ps = msg.find_first_of('-');
+        if (ps!=string::npos)
+            scriptdepth = atoi(msg.c_str()+ps+1);
+
+        // Find filename
         const size_t p1 = msg.find_last_of('[');
         if (p1==string::npos)
