Index: /trunk/BNC/src/orbComp/sp3Comp.cpp
===================================================================
--- /trunk/BNC/src/orbComp/sp3Comp.cpp	(revision 6363)
+++ /trunk/BNC/src/orbComp/sp3Comp.cpp	(revision 6364)
@@ -188,14 +188,5 @@
   // Estimate Parameters
   // -------------------
-  ColumnVector xx;
-  try {
-    xx = NN.i() * bb;
-  }
-  catch (Exception& exc) {
-    for (int ii = 1; ii <= NN.Nrows(); ii++) {
-      NN(ii,ii) += 1e-4;
-    }
-    xx = NN.i() * bb;
-  }
+  ColumnVector xx = NN.i() * bb;
 
   // Compute clock residuals
@@ -222,5 +213,4 @@
 
   vector<t_epoch*> epochs;
-  set<t_prn>       clkSats;
   while (in1.currEpoch() && in2.currEpoch()) {
     bncTime t1 = in1.currEpoch()->_tt;
@@ -245,5 +235,4 @@
             if (sat1->_clkValid && sat2->_clkValid) {
               epo->_dc[sat1->_prn] = sat1->_clk - sat2->_clk;
-              clkSats.insert(sat1->_prn);
             }
           }
@@ -266,4 +255,7 @@
     throw "t_sp3Comp: not enought common epochs";
   }
+
+  set<t_prn> clkSats;
+
   for (unsigned ie = 0; ie < epochs.size(); ie++) {
     t_epoch* epoch  = epochs[ie];
@@ -287,4 +279,7 @@
         ColumnVector vel = (x1 - x2) / dt;
         XYZ_to_RSW(x1, vel, dx, dr[prn]);
+        if (epoch->_dc.find(prn) != epoch->_dc.end()) {
+          clkSats.insert(prn);
+        }
       }
       else {
