Index: trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- trunk/BNC/src/PPP/pppFilter.cpp	(revision 10021)
+++ trunk/BNC/src/PPP/pppFilter.cpp	(revision 10022)
@@ -276,9 +276,5 @@
     // ----------------------------
     if ((iObs +1) < OPT->_minObs) {
-      LOG << "t_pppFilter::processSystem not enough observations: " << iObs + 1 << "\n";
-      if (preProcessing) {
-        _obsPool->setRefSatChangeRequired(sys, true);
-        return success;
-      }
+      LOG << "t_pppFilter::processSystem not enough observations " << sys << ": " << iObs + 1 << "\n";
       return failure;
     }
@@ -373,13 +369,20 @@
       }
       else {    // fin-processing
-        if (obs->prn() != refPrn) {
-          LOG << epoTimeStr << " Outlier " << t_lc::toString(maxOutlierLC)
-              << ' ' << obs->prn().toString() << ' ' << setw(8)
-              << setprecision(4) << maxOutlier << endl;
-          if (par) {
-              resetAmb(par->prn(), obsVector, maxOutlierLC, &QSav, &xSav);
-            } else {
+        LOG << epoTimeStr << " Outlier " << t_lc::toString(maxOutlierLC) << ' '
+            << obs->prn().toString() << ' ' << setw(8) << setprecision(4)
+            << maxOutlier << endl;
+        if (par) {
+          if (par->ambResetCandidate() ||
+              OPT->_obsModelType == OPT->DCMcodeBias ||
+              OPT->_obsModelType == OPT->DCMphaseBias) {
+            resetAmb(par->prn(), obsVector, maxOutlierLC, &QSav, &xSav);
+          }
+          else {
+            par->setAmbResetCandidate();
             obs->setOutlier();
           }
+        }
+        else {
+          obs->setOutlier();
         }
       }
Index: trunk/BNC/src/pppMain.cpp
===================================================================
--- trunk/BNC/src/pppMain.cpp	(revision 10021)
+++ trunk/BNC/src/pppMain.cpp	(revision 10022)
@@ -184,5 +184,5 @@
     opt->_sigmaC1      = settings.value("PPP/sigmaC1").toDouble(); if (opt->_sigmaC1 <= 0.0)  opt->_sigmaC1  = 2.00;
     opt->_sigmaL1      = settings.value("PPP/sigmaL1").toDouble(); if (opt->_sigmaL1 <= 0.0)  opt->_sigmaL1  = 0.02;
-    opt->_sigmaGIM     = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 5.00;
+    opt->_sigmaGIM     = settings.value("PPP/sigmaGIM").toDouble();if (opt->_sigmaGIM <= 0.0) opt->_sigmaGIM = 2.00;
     opt->_corrWaitTime = settings.value("PPP/corrWaitTime").toDouble();
     if (!_realTime || opt->_corrMount.empty()) {
@@ -408,6 +408,6 @@
     opt->_minObs      = settings.value("PPP/minObs").toInt(); if (opt->_minObs < 4) opt->_minObs = 4;
     opt->_minEle      = settings.value("PPP/minEle").toDouble() * M_PI / 180.0;
-    opt->_maxResC1    = settings.value("PPP/maxResC1").toDouble(); if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 2.0;
-    opt->_maxResL1    = settings.value("PPP/maxResL1").toDouble(); if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.02;
+    opt->_maxResC1    = settings.value("PPP/maxResC1").toDouble();  if (opt->_maxResC1 <= 0.0) opt->_maxResC1 = 5.0;
+    opt->_maxResL1    = settings.value("PPP/maxResL1").toDouble();  if (opt->_maxResL1 <= 0.0) opt->_maxResL1 = 0.05;
     opt->_maxResGIM   = settings.value("PPP/maxResGIM").toDouble(); if (opt->_maxResGIM <= 0.0) opt->_maxResGIM = 5.0;
     opt->_eleWgtCode  = (settings.value("PPP/eleWgtCode").toInt() != 0);
@@ -422,5 +422,5 @@
     opt->_noiseIon        = 100.0;
     opt->_aprSigCodeBias  = 100.0;
-    opt->_noiseCodeBias   = 10.0;
+    opt->_noiseCodeBias   = 100.0;
     opt->_aprSigPhaseBias = 100.0;
     opt->_noisePhaseBias  = 100.0;
