diff --git a/Code/Learning/otbListSampleGenerator.txx b/Code/Learning/otbListSampleGenerator.txx
index 7373236e2649d16a36b51b8859ac968f2bd16f6a..b4875c5cacbe961f02ad0cb455c7a992d6f1687b 100644
--- a/Code/Learning/otbListSampleGenerator.txx
+++ b/Code/Learning/otbListSampleGenerator.txx
@@ -235,8 +235,8 @@ ListSampleGenerator<TImage, TVectorData>
   m_ClassesSize.clear();
 
   //Compute pixel area:
-  typename ImageType::Pointer image = const_cast<ImageType*>(this->GetInput());
-  double                      pixelArea = vcl_abs(image->GetSpacing()[0] * image->GetSpacing()[1]);
+  typename ImageType::Pointer image = const_cast<ImageType*> (this->GetInput());
+  double pixelArea = vcl_abs(image->GetSpacing()[0] * image->GetSpacing()[1]);
 
   typename VectorDataType::ConstPointer vectorData = this->GetInputVectorData();
   TreeIteratorType itVector(vectorData->GetDataTree());
@@ -245,26 +245,34 @@ ListSampleGenerator<TImage, TVectorData>
     {
     if (itVector.Get()->IsPolygonFeature())
       {
-      m_ClassesSize[itVector.Get()->GetFieldAsInt(m_ClassKey)] +=
-        itVector.Get()->GetPolygonExteriorRing()->GetArea() / pixelArea; // in pixel
+      m_ClassesSize[itVector.Get()->GetFieldAsInt(m_ClassKey)] += itVector.Get()->GetPolygonExteriorRing()->GetArea()
+          / pixelArea; // in pixel
       }
     ++itVector;
     }
 
-  std::map<ClassLabelType, double>::const_iterator itmap = m_ClassesSize.begin();
-  double                                           minSize = itmap->second;
-  ++itmap;
-  while (itmap != m_ClassesSize.end())
+  if (!m_ClassesSize.empty())
     {
-    if (minSize > itmap->second)
+    std::map<ClassLabelType, double>::const_iterator itmap = m_ClassesSize.begin();
+    double minSize = itmap->second;
+    ++itmap;
+    while (itmap != m_ClassesSize.end())
       {
-      minSize = itmap->second;
+      if (minSize > itmap->second)
+        {
+        minSize = itmap->second;
+        }
+      ++itmap;
       }
-    ++itmap;
-    }
 
-  m_ClassMinSize = minSize;
-  m_NumberOfClasses = m_ClassesSize.size();
+    m_ClassMinSize = minSize;
+    m_NumberOfClasses = m_ClassesSize.size();
+    }
+  else
+    {
+    m_ClassMinSize = 0;
+    m_NumberOfClasses = 0;
+    }
 }
 
 template <class TImage, class TVectorData>