Index: trunk/FACT++/gui/FactGui.h
===================================================================
--- trunk/FACT++/gui/FactGui.h	(revision 11035)
+++ trunk/FACT++/gui/FactGui.h	(revision 11036)
@@ -48,8 +48,8 @@
          double bb[5] = {0., 0.03, 0.06, 0.00, 1.00};
          */
-        double ss[5] = {0., 0.25, 0.50, 0.75, 1.00};
-        double rr[5] = {0., 0.00, 0.00, 1.00, 1.00};
-        double gg[5] = {0., 0.00, 1.00, 0.00, 1.00};
-        double bb[5] = {0., 1.00, 0.00, 0.00, 1.00};
+        double ss[5] = {0.00, 0.25, 0.50, 0.75, 1.00};
+        double rr[5] = {0.15, 0.00, 0.00, 1.00, 0.85};
+        double gg[5] = {0.15, 0.00, 1.00, 0.00, 0.85};
+        double bb[5] = {0.15, 1.00, 0.00, 0.00, 0.85};
 
         const Int_t nn = 1440;
@@ -174,4 +174,13 @@
     }
 
+    double align(double min, double val, double max) const
+    {
+        if (val<min)
+            return min;
+        if (val>max)
+            return max;
+        return val;
+    }
+
     void Paint(Option_t *)
     {
@@ -187,7 +196,23 @@
             gPad->Range(-max, -max/r, max, max/r);
 
-
-        const double min   = fData.min();
-        const double scale = fData.max()==fData.min() ? 1 : fData.max()-fData.min();
+        double dmin = fData[0];
+        double dmax = fData[0];
+
+        for (unsigned int i=0; i<fData.size(); i++)
+        {
+            if (!fEnable[i])
+                continue;
+
+            if (fData[i]>dmax)
+                dmax = fData[i];
+            if (fData[i]<dmin)
+                dmin = fData[i];
+        }
+
+        const double min   = dmin;
+        const double scale = dmax==dmin ? 1 : dmax-dmin;
+
+//        const double min   = fData.min();
+//        const double scale = fData.max()==fData.min() ? 1 : fData.max()-fData.min();
 
         TAttFill fill(0, 1001);
@@ -200,5 +225,7 @@
                 continue;
 
-            const int col = (fData[cnt]-min)/scale*(fPalette.size()-1);
+            const double val = align(dmin, fData[cnt], dmax);
+
+            const int col = (val-min)/scale*(fPalette.size()-1);
 
             if (fEnable[cnt])
@@ -221,5 +248,7 @@
                 continue;
 
-            const int col = (fData[cnt]-min)/scale*(fPalette.size()-1);
+            const double val = align(dmin, fData[cnt], dmax);
+
+            const int col = (val-min)/scale*(fPalette.size()-1);
 
             if (fEnable[cnt])
@@ -243,5 +272,7 @@
         line.Modify();
 
-        const int col = (fData[fWhite]-min)/scale*(fPalette.size()-1);
+        const double val = align(dmin, fData[fWhite], dmax);
+
+        const int col = (val-min)/scale*(fPalette.size()-1);
 
         if (fEnable[fWhite])
@@ -722,5 +753,5 @@
     void handleDimDNS(const DimData &d)
     {
-        const int version = d.get<unsigned int>();
+        const int version = d.size()!=4 ? 0 : d.get<uint32_t>();
 
         ostringstream str;
@@ -1455,4 +1486,5 @@
         if (server=="FTM_CONTROL")
         {
+            // FIXME: Enable FTU page!!!
             fStatusFTMLabel->setText(s.name.c_str());
             fStatusFTMLabel->setToolTip(s.comment.c_str());
@@ -1538,5 +1570,5 @@
             fChatOnline = s.index==0;
 
-            SetLedColor(fStatusChatLed, fChatOnline ? kLedGreen : kLedRed, time);
+            SetLedColor(fStatusChatLed, fChatOnline ? kLedGreen : kLedGray, time);
 
             fChatSend->setEnabled(fChatOnline);
@@ -1569,4 +1601,7 @@
         if (text.substr(0, 6)=="CHAT: ")
         {
+            if (qos==MessageImp::kDebug)
+                return;
+
             out << "<font size='-1' color='navy'>[<B>";
             out << Time::fmt("%H:%M:%S") << time << "</B>]</FONT>  ";
