diff --git a/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx b/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx
index 0b60504fed8ea033038900f466b86054bc6402b3..ac4b60b7bfd1214655e224a2ddcef8ff4c5141f5 100644
--- a/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx
+++ b/Modules/Applications/AppClassification/app/otbMultiImageSamplingRate.cxx
@@ -334,12 +334,17 @@ private:
     std::string outputBase = outputPath.substr(0, outputPath.find_last_of('.'));
     std::string outputExt = outputPath.substr(outputPath.find_last_of('.'), std::string::npos);
     unsigned int overflowCount = 0;
+    bool noSamples=true;
     for (unsigned int i=0 ; i<nbInputs ; i++ )
       {
       // Print results
       oss.str(std::string(""));
-      oss << " className  requiredSamples  totalSamples  rate" << std::endl;
+      oss << " className  requiredSamples  totalSamples  rate\n";
       MapRateType rates = m_CalculatorList->GetRatesByClass(i);
+      if(!rates.empty())
+        {
+        noSamples = false;
+        }
       MapRateType::const_iterator itRates = rates.begin();
       for(; itRates != rates.end(); ++itRates)
         {
@@ -358,6 +363,10 @@ private:
       oss << outputBase << "_" << i+1 << outputExt;
       m_CalculatorList->GetNthElement(i)->Write(oss.str());
       }
+    if (noSamples)
+      {
+      otbAppLogFATAL("No samples found in the inputs!");
+      }
     if (overflowCount)
       {
       std::string plural(overflowCount>1?"s":"");