diff --git a/Code/MultiScale/otbMorphologicalPyramidAnalyseFilter.txx b/Code/MultiScale/otbMorphologicalPyramidAnalyseFilter.txx
index c2aebe48285d5ecb939a2df6466020b7dff0c5c7..5e48c9eb801427c1dc139c09b6388b6690c4d357 100644
--- a/Code/MultiScale/otbMorphologicalPyramidAnalyseFilter.txx
+++ b/Code/MultiScale/otbMorphologicalPyramidAnalyseFilter.txx
@@ -18,6 +18,8 @@ PURPOSE.  See the above copyright notices for more information.
 #ifndef _otbMorphologicalPyramidAnalyseFilter_txx
 #define _otbMorphologicalPyramidAnalyseFilter_txx
 
+#include <math.h>
+
 #include "otbMorphologicalPyramidAnalyseFilter.h"
 
 #include "itkSubtractImageFilter.h"
@@ -147,7 +149,7 @@ namespace otb
     typename InputImageType::Pointer upsampled;
 
     // Structuring element size computation
-    const int structElementDimension=static_cast<int>(ceilf(this->GetSubSampleScale()/2.));
+    const int structElementDimension=static_cast<int>(ceil(static_cast<double>(this->GetSubSampleScale()/2.)));
   
     // Structuring element creation
     KernelType structuringElement;