diff --git a/Modules/Learning/Sampling/include/otbSampleAugmentation.h b/Modules/Learning/Sampling/include/otbSampleAugmentation.h
index 66753a09fe2047ae16c76f4f1876d96cfb23ebce..b0cac95af285f3fe585c72918db8d97700b7c9fa 100644
--- a/Modules/Learning/Sampling/include/otbSampleAugmentation.h
+++ b/Modules/Learning/Sampling/include/otbSampleAugmentation.h
@@ -76,11 +76,14 @@ void replicateSamples(const SampleVectorType& inSamples,
                     SampleVectorType& newSamples)
 {
   newSamples.resize(nbSamples);
+  size_t imod{0};
 #pragma omp parallel for
   for(size_t i=0; i<nbSamples; ++i)
     {
-    newSamples[i] = inSamples[i%inSamples.size()];
+    if (imod == inSamples.size()) imod = 0;
+    newSamples[i] = inSamples[imod++];
     }
+
 }
 
 /** Create new samples by adding noise to existing samples. Gaussian