Index: trunk/BNC/bncpppclient.cpp
===================================================================
--- trunk/BNC/bncpppclient.cpp	(revision 2067)
+++ trunk/BNC/bncpppclient.cpp	(revision 2068)
@@ -224,17 +224,16 @@
     ee->position(tt.gpsw(), tt.gpssec(), xc.data(), vv.data());
 
-    if (_corr.contains(prn)) {
-      t_corr* cc = _corr.value(prn);
-      if (ee->IOD() == cc->iod && (tt - cc->tt) < MAXAGE) {
-        corr = true;
-        applyCorr(cc, xc, vv);
+    if (CORR_REQUIRED) {
+      if (_corr.contains(prn)) {
+        t_corr* cc = _corr.value(prn);
+        if (ee->IOD() == cc->iod && (tt - cc->tt) < MAXAGE) {
+          corr = true;
+          applyCorr(cc, xc, vv);
+          return success;
+        }
       }
-    }
-    else {
-      if (CORR_REQUIRED) {
-        return failure;
-      }
-    }
-
+      return failure;
+    }
+    
     return success;
   }
@@ -254,4 +253,8 @@
   xc[2] += dx[2];
   xc[3] += cc->dClk;
+
+  // Relativistic Correction
+  // -----------------------
+  xc[3] -= 2.0 * DotProduct(xc.Rows(1,3),vv) / t_CST::c / t_CST::c ;
 }
 
