Index: /branches/BNC_2.12/src/bncephuser.cpp
===================================================================
--- /branches/BNC_2.12/src/bncephuser.cpp	(revision 9240)
+++ /branches/BNC_2.12/src/bncephuser.cpp	(revision 9241)
@@ -259,7 +259,8 @@
   }
 
-  // Check consistency with older ephemerides
-  // ----------------------------------------
+  // Check consistency with older ephemeris
+  // --------------------------------------
   const double MAXDIFF = 1000.0;
+  const double MINDIFF =    1.0;
   QString      prn     = QString(eph->prn().toInternalString().c_str());
   t_eph*       ephL    = ephLast(prn);
@@ -276,5 +277,5 @@
     double diffC = fabs(xc(4) - xcL(4)) * t_CST::c;
 
-    // some lines to allow update of ephemeris data sets after outage
+    // some lines to allow update of ephemeris data sets after an outage
     // update interval: 2h,
     if      (eph->type() == t_eph::GPS     && dt >  2*3600) {
@@ -315,6 +316,13 @@
     if (diff < MAXDIFF && diffC < MAXDIFF) {
       if (dt != 0.0) {
-        eph->setCheckState(t_eph::ok);
-        ephL->setCheckState(t_eph::ok);
+        if (diff < MINDIFF && diffC < MINDIFF &&
+            ephL->checkState() == t_eph::ok) {
+          // to prevent the same data sets with different TOC values
+          eph->setCheckState(t_eph::bad);
+        }
+        else {
+          eph->setCheckState(t_eph::ok);
+          ephL->setCheckState(t_eph::ok);
+        }
       }
     }
