Index: trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- trunk/BNC/src/PPP/pppFilter.cpp	(revision 9977)
+++ trunk/BNC/src/PPP/pppFilter.cpp	(revision 9978)
@@ -362,11 +362,5 @@
             << maxOutlier << endl;
         if (par) {
-          if ( par->ambResetCandidate() || (OPT->_obsModelType == OPT->DCMcodeBias ||    OPT->_obsModelType == OPT->DCMphaseBias) ) {
-            resetAmb(par->prn(), obsVector, &QSav, &xSav);
-          }
-          else {
-            par->setAmbResetCandidate();
-            obs->setOutlier();
-          }
+          resetAmb(par->prn(), obsVector, &QSav, &xSav);
         }
         else {
@@ -461,23 +455,20 @@
         // -----------------------
         else {
-          if (refPrn != t_prn()) {
-            return success;
-          }
-          ColumnVector AA(nPar);
-          for (unsigned iPar = 0; iPar < nPar; iPar++) {
-            const t_pppParam *par = params[iPar];
-            AA[iPar] = par->partial(_epoTime, obs, tLC, refPrn);
-          }
-          double ll = obs->obsValue(tLC) - obs->cmpValue(tLC)
-                    - DotProduct(_x0, AA);
-          double vv = DotProduct(AA, _xFlt) - ll;
-          if (fabs(vv) > SLIP) {
-            LOG << epoTimeStr << " cycle slip detected " << t_lc::toString(tLC)
-                << ' ' << obs->prn().toString() << ' ' << setw(8)
-                << setprecision(4) << vv << endl;
-            if (preProcessing) {
+          if (OPT->_obsModelType == OPT->DCMcodeBias || OPT->_obsModelType == OPT->DCMphaseBias) {
+            if (!preProcessing || refPrn != t_prn()) {
+              return success;
+            }
+            ColumnVector AA(nPar);
+            for (unsigned iPar = 0; iPar < nPar; iPar++) {
+              const t_pppParam *par = params[iPar];
+              AA[iPar] = par->partial(_epoTime, obs, tLC, refPrn);
+            }
+            double ll = obs->obsValue(tLC) - obs->cmpValue(tLC) - DotProduct(_x0, AA);
+            double vv = DotProduct(AA, _xFlt) - ll;
+            if (fabs(vv) > SLIP) {
+              LOG << epoTimeStr << " cycle slip detected " << t_lc::toString(tLC)
+                  << ' ' << obs->prn().toString() << ' ' << setw(8)
+                  << setprecision(4) << vv << endl;
               _obsPool->setRefSatChangeRequired(sys, true);
-            } else {
-              resetAmb(obs->prn(), obsVector);
             }
           }
