diff --git a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp
index 5db06df5cec05159ef2b7303661cb48587560a79..691b71b16470bb60b5164239924c634c03ce7ffe 100644
--- a/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp
+++ b/NumLib/TimeStepping/Algorithms/IterationNumberBasedTimeStepping.cpp
@@ -88,6 +88,13 @@ double IterationNumberBasedTimeStepping::findMultiplier(
             multiplier = _multiplier_vector[i];
         }
     }
+
+    if (!_accepted && (multiplier >= 1.0))
+    {
+        return *std::min_element(_multiplier_vector.begin(),
+                                 _multiplier_vector.end());
+    }
+
     return multiplier;
 }
 
@@ -108,7 +115,7 @@ double IterationNumberBasedTimeStepping::getNextTimeStepSize() const
         dt = _ts_prev.dt() * findMultiplier(_iter_times);
     }
 
-    dt = std::min(std::max(dt, _min_dt), _max_dt);
+    dt = std::clamp(dt, _min_dt, _max_dt);
 
     double const t_next = dt + _ts_prev.current();
     if (t_next > end())