diff --git a/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp b/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp
index f6d45e3412fa16be1259d74477a8d9599f742f71..4787ed174dd17f95f712903311df71adcd815b92 100644
--- a/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp
+++ b/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp
@@ -100,6 +100,11 @@ bool ossimAlosPalsarModel::InitSensorParams(const ossimKeywordlist &kwl, const c
 
   const char* dopcen_str = kwl.find(prefix, "alt_dopcen[0]");
   double dopcen = atof(dopcen_str);
+  const char* dopcenLinear_str = kwl.find(prefix, "alt_dopcen[1]");
+  double dopcenLinear;
+  if (dopcenLinear_str != NULL) {
+	  dopcenLinear = atof(dopcenLinear_str);
+  }
 
   if (_sensor != NULL)
   {
@@ -149,6 +154,7 @@ bool ossimAlosPalsarModel::InitSensorParams(const ossimKeywordlist &kwl, const c
   _sensor->set_semiMinorAxis(ellip_min) ;
 
   _sensor->set_dopcen(dopcen);
+  _sensor->set_dopcenLinear(dopcenLinear);
 
   return true;
 }
diff --git a/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp b/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp
index e1e64e9d5dd020bdb45c4c73479154af72a88c2f..8f6e7aab8785bf822c3b7fad4ce8942b3647f605 100644
--- a/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp
+++ b/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp
@@ -21,6 +21,10 @@
 #include <otb/GeodesicCoordinate.h>
 #include <complex>
 
+// FIXME
+#include <iostream>
+// Just for testing
+
 namespace ossimplugins
 {
 
@@ -52,6 +56,28 @@ int SarSensor::ImageToWorld(double distance, JSDDateTime time, double height, do
   RectangularCoordinate cart;
 
   double dopplerCentroid = _params->get_dopcen();
+  double dopcenLinear = _params->get_dopcenLinear();
+  if (dopcenLinear != 0.0)
+  {
+	  const double C = 2.99792458e+8 ;
+
+	  double prf = _params->get_prf();
+	  double sf = _params->get_sf();
+	  double range0 = _params->get_rangeToFirstData();
+
+	  int rangePix = (distance - range0) * 2 * sf / C;
+
+	  dopplerCentroid += dopcenLinear * rangePix;
+
+	  //FIXME nrangelooks?
+	  std::cout << "dopcenLinear = " << dopcenLinear << std::endl;
+	  std::cout << "prf = " << prf << std::endl;
+	  std::cout << "sf = " << sf << std::endl;
+	  std::cout << "range0 = " << range0 << std::endl;
+	  std::cout << "rangePix = " << rangePix << std::endl;
+	  std::cout << "dopplerCentroid = " << dopplerCentroid << std::endl;
+	  //Testing
+  }
 
   // note : the Doppler frequency is set to zero
   int etatLoc = localisationSAR(*geoEph, lambda, distance, dopplerCentroid, sensVisee, semiMajorAxis , semiMinorAxis , height, &cart);
diff --git a/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp b/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp
index c1ef719f9ec4c38633f54191819e86912c23ffff..a5a93f97c6451478ad6df612ee28d39931540ced 100644
--- a/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp
+++ b/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp
@@ -29,6 +29,8 @@ static const char SEMI_MINOR_AXIS_KW[]   = "semi_minor_axis";
 static const char NUM_AZIMUTH_LOOKS_KW[] = "number_azimuth_looks";
 static const char NUM_RANGE_LOOKS_KW[]   = "number_range_looks";
 static const char DOPCEN_KW[]            = "doppler_centroid";
+static const char DOPCENLINEAR_KW[]      = "doppler_centroid_linear_term";
+static const char RANGETOFIRSTDATA_KW[]  = "range_to_first_data_sample";
 
 SensorParams::SensorParams():
    _prf(0.0),
@@ -41,7 +43,9 @@ SensorParams::SensorParams():
    _semiMinorAxis(6356752.3141),
    _nAzimuthLook(1),
    _nRangeLook(1),
-   _dopcen(0.0)
+   _dopcen(0.0),
+   _dopcenLinear(0.0),
+   _rangeToFirstData(0.0)
 {
 }
 
@@ -60,7 +64,9 @@ SensorParams::SensorParams(const SensorParams& rhs):
    _semiMinorAxis(rhs._semiMinorAxis),
    _nAzimuthLook(rhs._nAzimuthLook),
    _nRangeLook(rhs._nRangeLook),
-   _dopcen(rhs._dopcen)
+   _dopcen(rhs._dopcen),
+   _dopcenLinear(rhs._dopcenLinear),
+   _rangeToFirstData(rhs._rangeToFirstData)
 {
 }
 
@@ -79,6 +85,8 @@ SensorParams& SensorParams::operator=(const SensorParams& rhs)
    _semiMajorAxis = rhs._semiMajorAxis;
    _semiMinorAxis = rhs._semiMinorAxis;
    _dopcen = rhs._dopcen;
+   _dopcenLinear = rhs._dopcenLinear;
+   _rangeToFirstData = rhs._rangeToFirstData;
    return *this;
 }
 
@@ -102,6 +110,8 @@ bool SensorParams::saveState(ossimKeywordlist& kwl, const char* prefix) const
    kwl.add(pfx.c_str(), NUM_AZIMUTH_LOOKS_KW, _nAzimuthLook);
    kwl.add(pfx.c_str(), NUM_RANGE_LOOKS_KW, _nRangeLook);
    kwl.add(pfx.c_str(), DOPCEN_KW, _dopcen);
+   kwl.add(pfx.c_str(), DOPCENLINEAR_KW, _dopcenLinear);
+   kwl.add(pfx.c_str(), RANGETOFIRSTDATA_KW, _rangeToFirstData);
    return true;
 }
 
@@ -247,5 +257,31 @@ bool SensorParams::loadState(const ossimKeywordlist& kwl, const char* prefix)
       result = false;
    }
    return result;
+
+   lookup = kwl.find(pfx.c_str(), DOPCENLINEAR_KW);
+   if (lookup)
+   {
+      s = lookup;
+      _dopcenLinear = s.toDouble();
+   }
+   else
+   {
+      result = false;
+   }
+   return result;
+
+   lookup = kwl.find(pfx.c_str(), RANGETOFIRSTDATA_KW);
+   if (lookup)
+   {
+      s = lookup;
+      _rangeToFirstData = s.toDouble();
+   }
+   else
+   {
+      result = false;
+   }
+   return result;
+
 }
+
 }
diff --git a/Utilities/otbossimplugins/ossim/otb/SensorParams.h b/Utilities/otbossimplugins/ossim/otb/SensorParams.h
index 3335e7407212344e49458434fbf7bfd374058408..f4c487efada4296769af0413c0f42b8aae41ed0e 100644
--- a/Utilities/otbossimplugins/ossim/otb/SensorParams.h
+++ b/Utilities/otbossimplugins/ossim/otb/SensorParams.h
@@ -163,10 +163,32 @@ public:
      return _dopcen;
    }
 
+   double get_dopcenLinear() const
+   {
+	   return _dopcenLinear;
+   }
+
    void set_dopcen(double value)
    {
      _dopcen = value;
    }
+
+   void set_dopcenLinear(double value)
+   {
+	   _dopcenLinear = value;
+   }
+
+   double get_rangeToFirstData() const
+   {
+	   return _rangeToFirstData;
+   }
+
+   void set_rangeToFirstData(double value)
+   {
+	   _rangeToFirstData = value;
+   }
+
+
    /**
     * @brief Method to save object state to a keyword list.
     * @param kwl Keyword list to save to.
@@ -240,6 +262,17 @@ protected:
     */
    double _dopcen;
 
+   /**
+    * @brief Doppler centroid linear term (wrt range pixel)
+    */
+   double _dopcenLinear;
+
+   /**
+    * @brief Slant range to first data sample
+    */
+   double _rangeToFirstData;
+
+
 private:
 };
 }