Index: trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- trunk/BNC/src/PPP/pppFilter.cpp	(revision 9980)
+++ trunk/BNC/src/PPP/pppFilter.cpp	(revision 9982)
@@ -344,5 +344,5 @@
       }
       if (preProcessing) {
-        // for refSats no ambiguity parameters exist
+        // for refSats no ambiguity parameter exists
         if ((obs->prn() == refPrn)
             && (t_lc::toString(maxOutlierLC) == "l1" ||
@@ -354,5 +354,7 @@
               << ' ' << setw(8) << setprecision(4) << maxOutlier << endl;
           break;
-        } //else {obs->setOutlier();}
+        } else {
+          obs->setOutlier();
+        }
       } else {    // fin-processing
         LOG << epoTimeStr << " Outlier " << t_lc::toString(maxOutlierLC) << ' '
@@ -360,5 +362,11 @@
             << maxOutlier << endl;
         if (par) {
-          resetAmb(par->prn(), obsVector, &QSav, &xSav);
+          //if ( par->ambResetCandidate() || (OPT->_obsModelType == OPT->DCMcodeBias ||    OPT->_obsModelType == OPT->DCMphaseBias) ) {
+            resetAmb(par->prn(), obsVector, &QSav, &xSav);
+          //}
+          //else {
+          //  par->setAmbResetCandidate();
+          //  obs->setOutlier();
+          //}
         }
         else {
@@ -451,25 +459,28 @@
         }
         // Check Pre-Fit Residuals
-        /* -----------------------
+        // -----------------------
         else {
-          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;
+          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) {
               _obsPool->setRefSatChangeRequired(sys, true);
+            } else {
+              resetAmb(obs->prn(), obsVector);
             }
           }
-        }*/
+        }
       }
     }
@@ -753,5 +764,5 @@
       continue;
     }
-    _datumTrafo->updateIndices(sys, iObs + 1); LOG << "AA Ncols/Nrows: " << AA.Ncols() << "/" << AA.Nrows() << "  nPar: "  << nPar << endl;    LOG << "AA.SubMatrix(1 .. " << iObs+1 << " , 1 .. " <<  nPar << ")" << endl;
+    _datumTrafo->updateIndices(sys, iObs + 1); //LOG << "AA Ncols/Nrows: " << AA.Ncols() << "/" << AA.Nrows() << "  nPar: "  << nPar << endl;    //LOG << "AA.SubMatrix(1 .. " << iObs+1 << " , 1 .. " <<  nPar << ")" << endl;
     if (_datumTrafo->prepareAA(AA.SubMatrix(1, iObs + 1, 1, nPar), 2)
         != success) {
