Index: /trunk/BNC/bncpppclient.cpp
===================================================================
--- /trunk/BNC/bncpppclient.cpp	(revision 3518)
+++ /trunk/BNC/bncpppclient.cpp	(revision 3519)
@@ -376,9 +376,9 @@
 	  if      (eLast && eLast->IOD() == cc->iod) {
             eLast->position(tt.gpsw(), tt.gpssec(), xc.data(), vv.data());
-            return applyCorr(tt, cc, xc, vv);
+            return applyCorr(tt, cc, xc, vv, eLast);
           }
 	  else if (ePrev && ePrev->IOD() == cc->iod) {
             ePrev->position(tt.gpsw(), tt.gpssec(), xc.data(), vv.data());
-            return applyCorr(tt, cc, xc, vv);
+            return applyCorr(tt, cc, xc, vv, ePrev);
           }
 	}
@@ -399,6 +399,6 @@
 ////////////////////////////////////////////////////////////////////////////
 t_irc bncPPPclient::applyCorr(const bncTime& tt, const t_corr* cc, 
-                             ColumnVector& xc, ColumnVector& vv) {
-  ColumnVector dx(3);
+                              ColumnVector& xc, ColumnVector& vv,
+                              const t_eph* eph) {
 
   double dt = tt - cc->tt;
@@ -410,15 +410,21 @@
 
   if (cc->xyzCorr) {
-    dx = raoHlp;
+    xc[0] += raoHlp[0];
+    xc[1] += raoHlp[1];
+    xc[2] += raoHlp[2];
+    ColumnVector xcHlp(4);
+    ColumnVector vvHlp(3);
+    eph->position(cc->tt.gpsw(), cc->tt.gpssec(), xcHlp.data(), vvHlp.data());
+    xc[3] += cc->dClk - xcHlp[3];
   }
   else {
+    ColumnVector dx(3);
     RSW_to_XYZ(xc.Rows(1,3), vv, raoHlp, dx);
-  }
-
-  xc[0] -= dx[0];
-  xc[1] -= dx[1];
-  xc[2] -= dx[2];
-  xc[3] += cc->dClk + cc->dotDClk * dt + cc->dotDotDClk * dt * dt
-        + cc->hrClk;
+    xc[0] -= dx[0];
+    xc[1] -= dx[1];
+    xc[2] -= dx[2];
+    xc[3] += cc->dClk + cc->dotDClk * dt + cc->dotDotDClk * dt * dt
+          + cc->hrClk;
+  }
 
   return success;
Index: /trunk/BNC/bncpppclient.h
===================================================================
--- /trunk/BNC/bncpppclient.h	(revision 3518)
+++ /trunk/BNC/bncpppclient.h	(revision 3519)
@@ -125,5 +125,5 @@
   void putNewObs(const t_obs& pp);
   static t_irc applyCorr(const bncTime& tt, const t_corr* cc, ColumnVector& xc, 
-                         ColumnVector& vv);
+                         ColumnVector& vv, const t_eph* eph);
 
  public slots:
Index: /trunk/BNC/combination/bnccomb.cpp
===================================================================
--- /trunk/BNC/combination/bnccomb.cpp	(revision 3518)
+++ /trunk/BNC/combination/bnccomb.cpp	(revision 3519)
@@ -658,5 +658,5 @@
       corr->eph->position(time12.gpsw(), time12.gpssec(), 
                           xc.data(), vv.data());
-      bncPPPclient::applyCorr(time12, corr, xc, vv);
+      bncPPPclient::applyCorr(time12, corr, xc, vv, corr->eph);
       
       // Relativistic Correction
