diff --git a/CImg.h b/CImg.h
index 0f7881085dd64ccda890107fe2bf55d4d5c6a4b3..1039a55091d86aa28d1ba4d8ac4df14ce4809289 100644
--- a/CImg.h
+++ b/CImg.h
@@ -27484,7 +27484,7 @@ namespace cimg_library_suffixed {
       case 2 : { // Salt & Pepper noise
         if (nsigma<0) nsigma = -nsigma;
         if (M==m) {
-          if (cimg::type<T>::is_float()) { m = (Tfloat)0; M = (Tfloat)1; }
+          if (cimg::type<T>::is_float()) { --m; ++M; }
           else { m = (Tfloat)cimg::type<T>::min(); M = (Tfloat)cimg::type<T>::max(); }
         }
         cimg_rof(*this,ptrd,T) if (cimg::rand(100)<nsigma) *ptrd = (T)(cimg::rand()<0.5?M:m);