diff --git a/src/fixedpointiterator.cc b/src/fixedpointiterator.cc
index 5b7a394f77cff7b4a5519d7e81509fd34c52c5ad..517db55bd67c00fbc73ed874d2e09009c04562a3 100644
--- a/src/fixedpointiterator.cc
+++ b/src/fixedpointiterator.cc
@@ -41,7 +41,7 @@ int FixedPointIterator<Factory, StateUpdater, VelocityUpdater>::run(
   Vector previousVelocityIterate = velocityIterate;
 
   size_t fixedPointIteration;
-  for (fixedPointIteration = 1; fixedPointIteration <= fixedPointMaxIterations_;
+  for (fixedPointIteration = 0; fixedPointIteration < fixedPointMaxIterations_;
        ++fixedPointIteration) {
     Vector v_m;
     velocityUpdater->extractOldVelocity(v_m);
@@ -63,8 +63,10 @@ int FixedPointIterator<Factory, StateUpdater, VelocityUpdater>::run(
     velocityProblemSolver.solve();
 
     if (velocityMatrixNorm.diff(previousVelocityIterate, velocityIterate) <
-        fixedPointTolerance_)
+        fixedPointTolerance_) {
+      fixedPointIteration++;
       break;
+    }
 
     previousVelocityIterate = velocityIterate;
   }