Index: branches/BNC_2.12/src/combination/bnccomb.cpp
===================================================================
--- branches/BNC_2.12/src/combination/bnccomb.cpp	(revision 9263)
+++ branches/BNC_2.12/src/combination/bnccomb.cpp	(revision 9267)
@@ -163,4 +163,5 @@
 
   QString ssrFormat;
+  _ssrCorr = 0;
   QListIterator<QString> it(settings.value("uploadMountpointsOut").toStringList());
   while (it.hasNext()) {
@@ -170,5 +171,4 @@
     }
   }
-  _ssrCorr = 0;
   if      (ssrFormat == "IGS-SSR") {
     _ssrCorr = new SsrCorrIgs();
@@ -177,5 +177,8 @@
     _ssrCorr = new SsrCorrRtcm();
   }
-
+  else { // default
+    _ssrCorr = new SsrCorrIgs();
+  }
+  
   _rtnetDecoder = 0;
 
@@ -407,5 +410,6 @@
     else {
       QMap<t_prn, t_orbCorr>& storage = _orbCorrections[acName];
-      if (!storage.contains(clkCorr._prn)  || storage[clkCorr._prn]._iod != newCorr->_iod) {
+      if (!storage.contains(clkCorr._prn)  || 
+           storage[clkCorr._prn]._iod != newCorr->_iod) {
         delete newCorr;
         continue;
@@ -422,4 +426,9 @@
     if (ephLast == 0) {
       emit newMessage("bncComb: eph not found for "  + prn.mid(0,3).toAscii(), true);
+      delete newCorr;
+      continue;
+    }
+    else if (ephLast->checkState() != t_eph::ok) {
+      emit newMessage("bncComb: eph not ok for "  + prn.mid(0,3).toLatin1(), true);
       delete newCorr;
       continue;
@@ -470,23 +479,17 @@
   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.norm_Frobenius();
-  double diffC = dC * t_CST::c ;
-  if (diff  > MAXDIFF ||
-      diffC > MAXDIFF) {
-    return;
-  }
 
   ColumnVector dRAO(3);
