Index: trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- trunk/BNC/src/PPP/pppFilter.cpp	(revision 10596)
+++ trunk/BNC/src/PPP/pppFilter.cpp	(revision 10597)
@@ -267,7 +267,7 @@
       if (par) {
         if (par->ambResetCandidate()) {
-          resetAmb(obs->prn(), obsVector, maxOutlierLC, &QSav, &xSav);
-        }
-        else {
+        resetAmb(obs->prn(), obsVector, maxOutlierLC, &QSav, &xSav);
+      }
+      else {
           par->setAmbResetCandidate();
           obs->setOutlier();
@@ -382,5 +382,6 @@
   t_irc irc = failure;
   vector<t_pppParam*>& params = _parlist->params();
-  for (unsigned iPar = 0; iPar < params.size(); iPar++) {
+  unsigned nPar = params.size();
+  for (unsigned iPar = 0; iPar < nPar; iPar++) {
     t_pppParam *par = params[iPar];
     if (par->type() == t_pppParam::amb && par->prn() == prn) {
@@ -400,13 +401,13 @@
       par->setAmbEleSat(eleSat);
       params[iPar] = par;
-      for (unsigned ii = 1; ii <= params.size(); ii++) {
-        _QFlt(ii, ind + 1) = 0.0;
+      for (unsigned ii = 0; ii < nPar; ii++) {
+        _QFlt(ii+1, ind+1) = 0.0;
         if (QSav) {
-          (*QSav)(ii, ind + 1) = 0.0;
-        }
-      }
-      _QFlt(ind + 1, ind + 1) = par->sigma0() * par->sigma0();
+          (*QSav)(ii+1, ind+1) = 0.0;
+        }
+      }
+      _QFlt(ind+1,ind+1) = par->sigma0() * par->sigma0();
       if (QSav) {
-        (*QSav)(ind + 1, ind + 1) = _QFlt(ind + 1, ind + 1);
+        (*QSav)(ind+1,ind+1) = _QFlt(ind+1,ind+1);
       }
       _xFlt[ind] = 0.0;
