Index: trunk/BNC/bncgetthread.cpp
===================================================================
--- trunk/BNC/bncgetthread.cpp	(revision 698)
+++ trunk/BNC/bncgetthread.cpp	(revision 699)
@@ -377,15 +377,4 @@
 void bncGetThread::run() {
 
-  t_irc irc = initRun();
-
-  if      (irc == fatal) {
-    QThread::exit(1);
-    return;
-  }
-  else if (irc != success) {
-    emit(newMessage(_staID + ": initRun failed, reconnecting"));
-    tryReconnect();
-  }
-
   bool wrongEpoch = false;
   bool decode = true;
@@ -397,6 +386,18 @@
   bool begCorrupt = false;
   bool endCorrupt = false;
+
   _decodeTime = QDateTime::currentDateTime();
- 
+  _decodeSucc = QDateTime::currentDateTime();
+  t_irc irc = initRun();
+
+  if      (irc == fatal) {
+    QThread::exit(1);
+    return;
+  }
+  else if (irc != success) {
+    emit(newMessage(_staID + ": initRun failed, reconnecting"));
+    tryReconnect();
+  }
+
   if (initPause < _inspSegm) {
     initPause = _inspSegm;
@@ -452,4 +453,5 @@
             if (numSucc>0) {
               secSucc += _inspSegm;
+              _decodeSucc = QDateTime::currentDateTime();
               if (secSucc > _adviseReco * 60) {
                 secSucc = _adviseReco * 60 + 1;
@@ -483,7 +485,7 @@
             // ---------------------
             if ( begCorrupt && !endCorrupt && secSucc > _adviseReco * 60 ) {
-              _endDateCor = QDateTime::currentDateTime().toUTC().date().toString("dd-MM-yy");
-              _endTimeCor = QDateTime::currentDateTime().toUTC().time().toString("hh:mm:ss");
-              emit(newMessage(_staID + ": Corrupted recovery threshold exceeded"));
+              _endDateCor = QDateTime::currentDateTime().addSecs(- _adviseReco * 60).toUTC().date().toString("yy-MM-dd");
+              _endTimeCor = QDateTime::currentDateTime().addSecs(- _adviseReco * 60).toUTC().time().toString("hh:mm:ss");
+              emit(newMessage((_staID + ": Corrupted recovery threshold exceeded at " + _endDateCor + " " + _endTimeCor).toAscii()));
               callScript(("End_Corrupted " + _endDateCor + " " + _endTimeCor + " Begin was " + _begDateCor + " " + _begTimeCor).toAscii());
               endCorrupt = true;
@@ -496,7 +498,7 @@
               // -----------------------
               if ( !begCorrupt && secFail > _adviseFail * 60 ) {
-                _begDateCor = QDateTime::currentDateTime().toUTC().date().toString("dd-MM-yy");
-                _begTimeCor = QDateTime::currentDateTime().toUTC().time().toString("hh:mm:ss");
-                emit(newMessage(_staID + ": Corrupted failure threshold exceeded"));
+                _begDateCor = _decodeSucc.toUTC().date().toString("yy-MM-dd");
+                _begTimeCor = _decodeSucc.toUTC().time().toString("hh:mm:ss");
+                emit(newMessage((_staID + ": Corrupted failure threshold exceeded at " + _begDateCor + " " + _begTimeCor).toAscii()));
                 callScript(("Begin_Corrupted " + _begDateCor + " " + _begTimeCor).toAscii());
                 begCorrupt = true;
@@ -517,7 +519,7 @@
         _decodeStart.setTime(QTime());
         if (_inspSegm>0) {
-          _endDateOut = QDateTime::currentDateTime().toUTC().date().toString("dd-MM-yy");
-          _endTimeOut = QDateTime::currentDateTime().toUTC().time().toString("hh:mm:ss");
-          emit(newMessage(_staID + ": Outage recovery threshold exceeded"));
+          _endDateOut = QDateTime::currentDateTime().addSecs(- _adviseReco * 60).toUTC().date().toString("yy-MM-dd");
+          _endTimeOut = QDateTime::currentDateTime().addSecs(- _adviseReco * 60).toUTC().time().toString("hh:mm:ss");
+          emit(newMessage((_staID + ": Outage recovery threshold exceeded at " + _endDateOut + " " + _endTimeOut).toAscii()));
           callScript(("End_Outage " + _endDateOut + " " + _endTimeOut + " Begin was " + _begDateOut + " " + _begTimeOut).toAscii());
         }
@@ -625,7 +627,7 @@
         _decodeStop.setTime(QTime());
         if (_inspSegm>0) {
-          _begDateOut = QDateTime::currentDateTime().toUTC().date().toString("dd-MM-yy");
-          _begTimeOut = QDateTime::currentDateTime().toUTC().time().toString("hh:mm:ss");
-          emit(newMessage(_staID + ": Outage failure threshold exceeded"));
+          _begDateOut = _decodeTime.toUTC().date().toString("yy-MM-dd");
+          _begTimeOut = _decodeTime.toUTC().time().toString("hh:mm:ss");
+          emit(newMessage((_staID + ": Outage failure threshold exceeded at " + _begDateOut + " " + _begTimeOut).toAscii()));
           callScript(("Begin_Outage " + _begDateOut + " " + _begTimeOut).toAscii());
         }
Index: trunk/BNC/bncgetthread.h
===================================================================
--- trunk/BNC/bncgetthread.h	(revision 698)
+++ trunk/BNC/bncgetthread.h	(revision 699)
@@ -98,4 +98,5 @@
    QDateTime   _decodePause;
    QDateTime   _decodeTime;
+   QDateTime   _decodeSucc;
    QMutex      _mutex;
 };
