Index: branches/BNC_2.12/src/bncgetthread.cpp
===================================================================
--- branches/BNC_2.12/src/bncgetthread.cpp	(revision 8009)
+++ branches/BNC_2.12/src/bncgetthread.cpp	(revision 8012)
@@ -537,18 +537,10 @@
         const t_satObs& obs = it.next();
 
-        QString prn(obs._prn.toString().c_str());
-        long iSec    = long(floor(obs._time.gpssec()+0.5));
-        long obsTime = obs._time.gpsw()*7*24*3600 + iSec;
-
         // Check observation epoch
         // -----------------------
         if (!_rawFile) {
-          int    week;
-          double sec;
-          currentGPSWeeks(week, sec);
-          long currTime = week * 7*24*3600 + long(sec);
-          const double maxDt = 600.0;
-          if (fabs(currTime - obsTime) > maxDt) {
-              emit( newMessage(_staID + ": Wrong observation epoch(s)", false) );
+          bool wrongObservationEpoch = checkForWrongObsEpoch(obs._time);
+          if (wrongObservationEpoch) {
+            emit( newMessage(_staID + ": Wrong observation epoch(s)", false) );
             continue;
           }
@@ -558,4 +550,7 @@
         // ----------------------------------------------------
         if (!_rawFile) {
+          QString prn(obs._prn.toString().c_str());
+          long iSec    = long(floor(obs._time.gpssec()+0.5));
+          long obsTime = obs._time.gpsw()*7*24*3600 + iSec;
           QMap<QString, long>::const_iterator it = _prnLastEpo.find(prn);
           if (it != _prnLastEpo.end()) {
Index: branches/BNC_2.12/src/bncutils.cpp
===================================================================
--- branches/BNC_2.12/src/bncutils.cpp	(revision 8009)
+++ branches/BNC_2.12/src/bncutils.cpp	(revision 8012)
@@ -249,4 +249,20 @@
 //
 ////////////////////////////////////////////////////////////////////////////
+bool checkForWrongObsEpoch(bncTime obsEpoch) {
+  const double maxDt = 600.0;
+  long iSec    = long(floor(obsEpoch.gpssec()+0.5));
+  long obsTime = obsEpoch.gpsw()*7*24*3600 + iSec;
+  int    week;
+  double sec;
+  currentGPSWeeks(week, sec);
+  long currTime = week * 7*24*3600 + long(sec);
+
+  if (fabs(currTime - obsTime) > maxDt) {
+    return true;
+  }
+  return false;
+}
+//
+////////////////////////////////////////////////////////////////////////////
 QByteArray ggaString(const QByteArray& latitude,
                      const QByteArray& longitude,
Index: branches/BNC_2.12/src/bncutils.h
===================================================================
--- branches/BNC_2.12/src/bncutils.h	(revision 8009)
+++ branches/BNC_2.12/src/bncutils.h	(revision 8012)
@@ -62,4 +62,6 @@
 
 QDateTime    currentDateAndTimeGPS();
+
+bool         checkForWrongObsEpoch(bncTime obsEpoch);
 
 QByteArray   ggaString(const QByteArray& latitude, const QByteArray& longitude,
Index: branches/BNC_2.12/src/latencychecker.cpp
===================================================================
--- branches/BNC_2.12/src/latencychecker.cpp	(revision 8009)
+++ branches/BNC_2.12/src/latencychecker.cpp	(revision 8012)
@@ -336,7 +336,7 @@
     while (it.hasNext()) {
       const t_satObs& obs = it.next();
-      
+      bool wrongObservationEpoch = checkForWrongObsEpoch(obs._time);
       _newSecGPS = static_cast<int>(obs._time.gpssec());
-      if (_newSecGPS != _oldSecGPS) {
+      if (_newSecGPS != _oldSecGPS && !wrongObservationEpoch) {
         if (_newSecGPS % _miscIntr < _oldSecGPS % _miscIntr) {
           if (_numLat > 0) {
