Index: trunk/BNC/bncmodel.cpp
===================================================================
--- trunk/BNC/bncmodel.cpp	(revision 3383)
+++ trunk/BNC/bncmodel.cpp	(revision 3384)
@@ -1238,4 +1238,10 @@
   Tracer tracer("bncModel::update_p");
 
+  // Bancroft Solution
+  // -----------------
+  if (cmpBancroft(epoData) != success) {
+    return failure;
+  }
+
   rememberState(epoData);
 
@@ -1249,5 +1255,4 @@
     allPrns.push_back(satData->prn);
   }
-
   std::vector<QString> usedPrns;
 
@@ -1275,4 +1280,6 @@
       }
 
+      // Remove Neglected Satellites form epoData
+      // ----------------------------------------
       for (unsigned ip = 0; ip < allPrns.size(); ip++) {
         QString prn = allPrns[ip];
@@ -1281,4 +1288,7 @@
         }
       }
+      if (epoData->sizeSys('G') < MINOBS) {
+        continue;
+      }
 
       // First update using code observations, then phase observations
@@ -1286,40 +1296,4 @@
       for (int iPhase = 0; iPhase <= (_usePhase ? 1 : 0); iPhase++) {
       
-        // Bancroft Solution
-        // -----------------
-        if (iPhase == 0) {      
-          if (cmpBancroft(epoData) != success) {
-            restoreState(epoData);
-            return failure;
-          }
-          else {
-            if (nNeglected == 0) {
-              _epoData_sav->deepCopy(epoData);
-            }
-          }
-        }
-        else {
-          if (epoData->sizeSys('G') < MINOBS) {
-            restoreState(epoData);
-            _log += "bncModel::update_p: not enough data\n";
-            return failure;
-          }
-          unsigned numSatNoSlip = 0;
-          QVectorIterator<bncParam*> itPar(_params);
-          while (itPar.hasNext()) {
-            bncParam* par = itPar.next();
-            if (par->type == bncParam::AMB_L3 && par->prn[0] == 'G') {
-              if (par->numEpo >= 1) {
-                ++numSatNoSlip;
-              }
-            }
-          }
-          if (numSatNoSlip > 0 && numSatNoSlip < MINOBS) {
-            restoreState(epoData);
-            _log += "bncModel::update_p: not enough GPS satellites without cycle-slips\n";
-            return failure;
-          }
-        }
-        
         // Status Prediction
         // -----------------
