Index: trunk/BNC/src/combination/bnccomb.cpp
===================================================================
--- trunk/BNC/src/combination/bnccomb.cpp	(revision 10962)
+++ trunk/BNC/src/combination/bnccomb.cpp	(revision 11047)
@@ -1296,4 +1296,6 @@
       t_satCodeBias satCodeBias(corr->_satCodeBias);
       satCodeBias._staID = "INTERNAL";
+      satCodeBias._ssrIOD        = -1; // combined, not any single provider's solution
+      satCodeBias._ssrProviderID = -1;
       satCodeBiasList.push_back(satCodeBias);
       hlp = QString().asprintf(" CodeBias %2lu", satCodeBias._bias.size());
@@ -1592,4 +1594,13 @@
       im.remove();
     }
+    // a newer ephemeris may have arrived (or an older one been re-classified)
+    // since the correction was accepted - never switch to an unusable one
+    else if (ephLast->checkState() == t_eph::bad      ||
+             ephLast->checkState() == t_eph::outdated ||
+             ephLast->checkState() == t_eph::unhealthy) {
+      out << "checkOrbit: last eph not ok (" << ephLast->checkStateToString() << ") " << corr->_prn.mid(0,3) << "\n";
+      delete corr;
+      im.remove();
+    }
     else {
       if ( corr->_eph == ephLast ||
