Index: /trunk/BNC/bncgetthread.cpp
===================================================================
--- /trunk/BNC/bncgetthread.cpp	(revision 1571)
+++ /trunk/BNC/bncgetthread.cpp	(revision 1572)
@@ -321,4 +321,5 @@
 
       if (tryReconnect() != success) {
+        _latencyChecker->checkReconnect();
         continue;
       }
@@ -351,5 +352,4 @@
       // ------------------
       if (nBytes == 0) {
-        _latencyChecker->checkReconnect();
         emit(newMessage(_staID + ": Data timeout, reconnecting", true));
         continue;
Index: /trunk/BNC/latencychecker.cpp
===================================================================
--- /trunk/BNC/latencychecker.cpp	(revision 1571)
+++ /trunk/BNC/latencychecker.cpp	(revision 1572)
@@ -151,4 +151,6 @@
   _decodeSucc = QDateTime::currentDateTime();
 
+  _decodeStop = QDateTime::currentDateTime();
+
 }
 
@@ -161,5 +163,22 @@
 //////////////////////////////////////////////////////////////////////////////
 void latencyChecker::checkReconnect() {
-  _reConnect = true;
+
+  // Begin outage threshold
+  // ----------------------
+  if ( _decodeStop.isValid() ) {
+    if ( _decodeStop.secsTo(QDateTime::currentDateTime()) >  _adviseFail * 60 ) {
+      _decodeStop.setDate(QDate());
+      _decodeStop.setTime(QTime());
+      _begDateOut = _checkTime.toUTC().date().toString("yy-MM-dd");
+      _begTimeOut = _checkTime.toUTC().time().toString("hh:mm:ss");
+      emit(newMessage((_staID
+                    + ": Failure threshold exceeded, outage since "
+                    + _begDateOut + " " + _begTimeOut).toAscii(), true));
+      callScript(("Begin_Outage "
+                    + _begDateOut + " " + _begTimeOut).toAscii());
+    }
+    _decodeStart = QDateTime::currentDateTime();
+  }
+
 }
 
@@ -257,21 +276,4 @@
   }
 
-  // Begin outage threshold
-  // ----------------------
-  if ( _decodeStop.isValid() ) {
-    if ( _decodeStop.secsTo(QDateTime::currentDateTime()) >  _adviseFail * 60 ) {
-      _decodeStop.setDate(QDate());
-      _decodeStop.setTime(QTime());
-      _begDateOut = _checkTime.toUTC().date().toString("yy-MM-dd");
-      _begTimeOut = _checkTime.toUTC().time().toString("hh:mm:ss");
-      emit(newMessage((_staID
-                    + ": Failure threshold exceeded, outage since "
-                    + _begDateOut + " " + _begTimeOut).toAscii(), true));
-      callScript(("Begin_Outage "
-                    + _begDateOut + " " + _begTimeOut).toAscii());
-      _decodeStart = QDateTime::currentDateTime();
-    }
-  }
-
   // End outage threshold
   // --------------------
@@ -292,9 +294,7 @@
                     + _endDateOut + " " + _endTimeOut + " Begin was "
                     + _begDateOut + " " + _begTimeOut).toAscii());
-      _decodeStop = QDateTime::currentDateTime();
-    }
-  }
-  _reConnect = false;
-
+    _decodeStop = QDateTime::currentDateTime();
+    }
+  }
 }
 
Index: /trunk/BNC/latencychecker.h
===================================================================
--- /trunk/BNC/latencychecker.h	(revision 1571)
+++ /trunk/BNC/latencychecker.h	(revision 1572)
@@ -65,5 +65,4 @@
   bool       _endCorrupt;
   bool       _followSec;
-  bool       _reConnect;
   double     _maxDt;
   double     _sumLat;
