diff --git a/Code/BasicFilters/otbWindowedSincInterpolateImageGaussianFunction.h b/Code/BasicFilters/otbWindowedSincInterpolateImageGaussianFunction.h
index ccd7f2896c57789e9b503402bc9e95973e9c064b..9e03e1f0007727abbcf7c55f7c0205c9282f4061 100644
--- a/Code/BasicFilters/otbWindowedSincInterpolateImageGaussianFunction.h
+++ b/Code/BasicFilters/otbWindowedSincInterpolateImageGaussianFunction.h
@@ -50,9 +50,9 @@ class GaussianWindowFunction
     {
       double x = static_cast<double>(A);
       double px = M_PI * x;
-      double temp = exp( x * m_Factor );
+      double temp = vcl_exp( px*px * m_Factor);
       return (x == 0.0) ? static_cast<TOutput>(temp) : static_cast<TOutput>(temp * vcl_sin(px) / px);
-    }    
+    }
     private:
     double m_Factor;
     unsigned int m_Radius;