Index: trunk/BNC/src/combination/bnccomb.cpp
===================================================================
--- trunk/BNC/src/combination/bnccomb.cpp	(revision 9265)
+++ trunk/BNC/src/combination/bnccomb.cpp	(revision 9266)
@@ -409,4 +409,9 @@
       continue;
     }
+    else if (ephLast->checkState() != t_eph::ok) {
+      emit newMessage("bncComb: eph not ok for "  + prn.mid(0,3).toLatin1(), true);
+      delete newCorr;
+      continue;
+    }
     else {
       if      (ephLast->IOD() == newCorr->_iod) {
@@ -458,35 +463,21 @@
     return;
   }
-  
-  /* No switch, if the last one is too recent
-  // ----------------------------------------
-  const int MINAGE = 100; // seconds, upload is waiting 60 seconds + combi has ~30 seconds latency
-  if (lastEph->receptDateTime().isValid() &&
-      lastEph->receptDateTime().secsTo(currentDateAndTimeGPS()) < MINAGE) {
-    return;
-  }*/
-  
+
   ColumnVector oldXC(6);
   ColumnVector oldVV(3);
-  corr->_eph->getCrd(corr->_time, oldXC, oldVV, false);
+  if (corr->_eph->getCrd(corr->_time, oldXC, oldVV, false) != success) {
+    return;
+  }
 
   ColumnVector newXC(6);
   ColumnVector newVV(3);
-  lastEph->getCrd(corr->_time, newXC, newVV, false);
+  if (lastEph->getCrd(corr->_time, newXC, newVV, false) != success) {
+    return;
+  }
 
   ColumnVector dX = newXC.Rows(1,3) - oldXC.Rows(1,3);
   ColumnVector dV = newVV           - oldVV;
   double       dC = newXC(4)        - oldXC(4);
-  
-  /* small check
-  // -----------
-  const double MAXDIFF = 1000.0;
-  double diff  = dX.NormFrobenius();
-  double diffC = dC * t_CST::c ;
-  if (diff  > MAXDIFF ||
-      diffC > MAXDIFF) {
-    return;
-  }
-*/
+
   ColumnVector dRAO(3);
   XYZ_to_RSW(newXC.Rows(1,3), newVV, dX, dRAO);
