diff --git a/src/main/java/org/orekit/rugged/api/Rugged.java b/src/main/java/org/orekit/rugged/api/Rugged.java
index a9dde86e29692bd30696ed8665cb52a3c015fea8..0e6a67a21bbc6063ee6256e03b92bc88ebf83ca4 100644
--- a/src/main/java/org/orekit/rugged/api/Rugged.java
+++ b/src/main/java/org/orekit/rugged/api/Rugged.java
@@ -302,8 +302,9 @@ public class Rugged {
 
             if (atmosphericRefraction != null) {
                 // apply atmospheric refraction correction
-                gp[i] = atmosphericRefraction.applyCorrection(sensor.getPosition(), sensor.getLOS(date, i),
-                                                              (NormalizedGeodeticPoint) gp[i], algorithm);
+                final Vector3D pBody = inertToBody.transformPosition(pInert);
+                final Vector3D lBody = inertToBody.transformVector(lInert);
+                gp[i] = atmosphericRefraction.applyCorrection(pBody, lBody, (NormalizedGeodeticPoint) gp[i], algorithm);
             }
 
             DumpManager.dumpDirectLocationResult(gp[i]);
@@ -389,7 +390,9 @@ public class Rugged {
         final NormalizedGeodeticPoint result;
         if (atmosphericRefraction != null) {
             // apply atmospheric refraction correction
-            result = atmosphericRefraction.applyCorrection(position, los, gp, algorithm);
+            final Vector3D pBody = inertToBody.transformPosition(pInert);
+            final Vector3D lBody = inertToBody.transformVector(lInert);
+            result = atmosphericRefraction.applyCorrection(pBody, lBody, gp, algorithm);
         } else {
             // don't apply atmospheric refraction correction
             result = gp;