diff --git a/Code/BasicFilters/otbMeanShiftImageFilter.txx b/Code/BasicFilters/otbMeanShiftImageFilter.txx
index 9ea5b07b73337dd4f2b50eb56f6904aebbd71580..88e05686784946b2622c4fd61d0c764304b8b8cb 100644
--- a/Code/BasicFilters/otbMeanShiftImageFilter.txx
+++ b/Code/BasicFilters/otbMeanShiftImageFilter.txx
@@ -373,11 +373,11 @@ MeanShiftImageFilter<TInputImage,TOutputImage,TLabeledOutput,TBufferConverter>
   //define the boundaries
   RegionList *regionList        = edisonProcessor.GetBoundaries();
   int        *regionIndeces;
-  unsigned int        numRegions         = regionList->GetNumRegions();
+  int        numRegions         = regionList->GetNumRegions();
 
   typename LabeledOutputType::IndexType boundIndex;
 
-  for (LabelType label = 0; label < numRegions;++label)
+  for (LabelType label = 0; label < numRegions; ++label)
   {
     OutputPixelType pixel;
     TBufferConverter::FloatArrayToPixel(modes,static_cast<unsigned int>(label*clusteredOutputPtr->GetNumberOfComponentsPerPixel()),
diff --git a/Code/MultiScale/otbWaveletFilterBank.txx b/Code/MultiScale/otbWaveletFilterBank.txx
index 8e5ad9ed0589a550e13acc982068fa2cbd4c3445..5e0f884c70aff5c16ec2ccd3938294cdc4c4d543 100644
--- a/Code/MultiScale/otbWaveletFilterBank.txx
+++ b/Code/MultiScale/otbWaveletFilterBank.txx
@@ -811,7 +811,7 @@ WaveletFilterBank< TInputImage, TOutputImage, TWaveletOperator, INVERSE >
     lowPassOperator.SetUpSampleFactor( this->GetUpSampleFilterFactor() );
     lowPassOperator.CreateDirectional();
 
-    long int radius [ InputImageDimension ];
+    unsigned long int radius [ InputImageDimension ];
     //radius[0] = lowPassOperator.GetRadius()[0];
 
     HighPassOperatorType highPassOperator;
diff --git a/Code/Radiometry/otbRadarFunctors.txx b/Code/Radiometry/otbRadarFunctors.txx
index c853294c06ac040154785c36f0d42277110df38e..c32331aa6ea155966cbe841c40c813cb82e4a9e9 100644
--- a/Code/Radiometry/otbRadarFunctors.txx
+++ b/Code/Radiometry/otbRadarFunctors.txx
@@ -219,7 +219,7 @@ TerraSarCalibrationComplexImageFunctor<TInput, TOutput>
   double outRadBr = static_cast<double>(m_RadarBrightness( modulus ));
 
   double NEBN = 0.;
-  for(int i=0; i<curCoeff.size(); i++)
+  for(unsigned int i=0; i<curCoeff.size(); i++)
     {
       NEBN += curCoeff[i]*vcl_pow( diffCurRange, i);
     }