diff --git a/Code/BasicFilters/otbMeanShiftImageFilter.txx b/Code/BasicFilters/otbMeanShiftImageFilter.txx
index 88e05686784946b2622c4fd61d0c764304b8b8cb..113f396c9c6bc5def44ebdf0f1bf6409f6f1049f 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;