diff --git a/Code/BasicFilters/otbMeanShiftImageFilter.txx b/Code/BasicFilters/otbMeanShiftImageFilter.txx
index f80d60b5b78428e80e0407238e2ee20a4b22a394..9ea5b07b73337dd4f2b50eb56f6904aebbd71580 100644
--- a/Code/BasicFilters/otbMeanShiftImageFilter.txx
+++ b/Code/BasicFilters/otbMeanShiftImageFilter.txx
@@ -373,7 +373,7 @@ MeanShiftImageFilter<TInputImage,TOutputImage,TLabeledOutput,TBufferConverter>
   //define the boundaries
   RegionList *regionList        = edisonProcessor.GetBoundaries();
   int        *regionIndeces;
-  int        numRegions         = regionList->GetNumRegions();
+  unsigned int        numRegions         = regionList->GetNumRegions();
 
   typename LabeledOutputType::IndexType boundIndex;