Index: /trunk/BNC/src/PPP/pppFilter.cpp
===================================================================
--- /trunk/BNC/src/PPP/pppFilter.cpp	(revision 6008)
+++ /trunk/BNC/src/PPP/pppFilter.cpp	(revision 6009)
@@ -440,17 +440,24 @@
   bool first = (params[0]->indexOld() < 0);
 
+  SymmetricMatrix Qneu(3); Qneu = 0.0;
+  for (unsigned ii = 0; ii < 3; ii++) {
+    const t_pppParam* par = params[ii];
+    if (first) {
+      Qneu[ii][ii] = par->sigma0() * par->sigma0();
+    }
+    else {
+      Qneu[ii][ii] = par->noise() * par->noise();
+    }
+  }
+
+  const t_pppStation* sta = PPP_CLIENT->staRover();
+  SymmetricMatrix Qxyz(3);
+  covariNEU_XYZ(Qneu, sta->ellApr().data(), Qxyz);
+
   if (first) {
-    _QFlt.SymSubMatrix(1,3) = 0.0;
-    for (unsigned ii = 0; ii < 3; ii++) {
-      const t_pppParam* par1 = params[ii];
-      _QFlt[ii][ii] = par1->sigma0() * par1->sigma0();
-    }
+    _QFlt.SymSubMatrix(1,3) = Qxyz;
   }
   else {
-    _QFlt.SymSubMatrix(1,3) = QFltOld.SymSubMatrix(1,3);
-    for (unsigned ii = 0; ii < 3; ii++) {
-      const t_pppParam* par1 = params[ii];
-      _QFlt[ii][ii] = QFltOld[ii][ii] + par1->noise() * par1->noise();
-    }
-  }
-}
+    _QFlt.SymSubMatrix(1,3) = QFltOld.SymSubMatrix(1,3) + Qxyz;
+  }
+}
