Index: trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- trunk/BNC/src/PPP/pppFilter.cpp	(revision 6004)
+++ trunk/BNC/src/PPP/pppFilter.cpp	(revision 6005)
@@ -104,7 +104,5 @@
   _x0.ReSize(_parlist->nPar());   _x0   = 0.0;
   
-  predictCovCrdPart(QFltOld, xFltOld);
-
-  for (unsigned ii = 3; ii < params.size(); ii++) {
+  for (unsigned ii = 0; ii < params.size(); ii++) {
     const t_pppParam* par1 = params[ii];
 
@@ -113,8 +111,12 @@
     int iOld = par1->indexOld();
     if (iOld < 0) {
-      _QFlt[ii][ii] = par1->sigma0() * par1->sigma0(); // new parameter
+      if (ii < 3) {
+        _QFlt[ii][ii] = par1->sigma0() * par1->sigma0(); // new parameter
+      }
     }
     else {
-      _QFlt[ii][ii] = QFltOld[iOld][iOld] + par1->noise() * par1->noise();
+      if (ii < 3) {
+        _QFlt[ii][ii] = QFltOld[iOld][iOld] + par1->noise() * par1->noise();
+      }
       _xFlt[ii]     = xFltOld[iOld];
       for (unsigned jj = 0; jj < ii; jj++) {
@@ -127,4 +129,6 @@
     }
   }
+
+  predictCovCrdPart();
 
   // Process Satellite Systems separately
@@ -431,5 +435,5 @@
 // Compute various DOP Values
 ////////////////////////////////////////////////////////////////////////////
-void t_pppFilter::predictCovCrdPart(const SymmetricMatrix& QFltOld, const ColumnVector& xFltOld) {
+void t_pppFilter::predictCovCrdPart() {
 
   const vector<t_pppParam*>& params = _parlist->params();
@@ -437,22 +441,10 @@
   for (unsigned ii = 0; ii < 3; ii++) {
     const t_pppParam* par1 = params[ii];
-
-    _x0[ii] = par1->x0();
-
-    int iOld = par1->indexOld();
-    if (iOld < 0) {
+    if (_QFlt[ii][ii] == 0.0) {
       _QFlt[ii][ii] = par1->sigma0() * par1->sigma0(); // new parameter
     }
     else {
-      _QFlt[ii][ii] = QFltOld[iOld][iOld] + par1->noise() * par1->noise();
-      _xFlt[ii]     = xFltOld[iOld];
-      for (unsigned jj = 0; jj < ii; jj++) {
-        const t_pppParam* par2 = params[jj];
-        int               jOld = par2->indexOld();
-        if (jOld >= 0) {
-          _QFlt[ii][jj] = QFltOld(iOld+1,jOld+1);
-        }
-      }
-    }
-  }
-}
+      _QFlt[ii][ii] += par1->noise() * par1->noise();
+    }
+  }
+}
Index: trunk/BNC/src/PPP/pppFilter.h
===================================================================
--- trunk/BNC/src/PPP/pppFilter.h	(revision 6004)
+++ trunk/BNC/src/PPP/pppFilter.h	(revision 6005)
@@ -61,5 +61,5 @@
   void cmpDOP(const std::vector<t_pppSatObs*>& obsVector);
 
-  void predictCovCrdPart(const SymmetricMatrix& QFltOld, const ColumnVector& xFltOld);
+  void predictCovCrdPart();
 
   bncTime         _epoTime;
