diff --git a/Code/ChangeDetection/otbCrossCorrelation.h b/Code/ChangeDetection/otbCrossCorrelation.h
index b707472c915a77513ed9701454d9de10ccf7b7df..87fb6ef0873d306ffd341bd6508c1421fe11b0ff 100644
--- a/Code/ChangeDetection/otbCrossCorrelation.h
+++ b/Code/ChangeDetection/otbCrossCorrelation.h
@@ -83,7 +83,7 @@ public:
     {
       for (unsigned long pos = 0; pos< itA.Size(); ++pos)
       {
-        crossCorrel += (static_cast<TOutput>(itA.GetPixel(pos))-meanA)*(static_cast<TOutput>(itB.GetPixel(pos))-meanB)/(itA.Size()*vcl_sqrt(varA*varB));
+        crossCorrel += (static_cast<TOutput>(itA.GetPixel(pos))-meanA)*(static_cast<TOutput>(itB.GetPixel(pos))-meanB)/(itA.Size()*vcl_sqrt(static_cast<double>(varA*varB)));
       }
     }
     else if (varA==itk::NumericTraits<TOutput>::Zero && varB==itk::NumericTraits<TOutput>::Zero)