diff --git a/src/fixedpointiterator.cc b/src/fixedpointiterator.cc
index 8a73ba48e2a9e1fe7bcabe16ae70501f7e1b3dd4..4bc8dee70b45e5dd98d705401d7c52e35424dc62 100644
--- a/src/fixedpointiterator.cc
+++ b/src/fixedpointiterator.cc
@@ -72,7 +72,8 @@ FixedPointIterator<Factory, StateUpdater, VelocityUpdater, ErrorNorm>::run(
     ScalarVector newAlpha;
     stateUpdater->extractAlpha(newAlpha);
 
-    if (errorNorm_.diff(alpha, newAlpha) < fixedPointTolerance_) {
+    if (lambda_ < 1e-12 or
+        errorNorm_.diff(alpha, newAlpha) < fixedPointTolerance_) {
       fixedPointIteration++;
       break;
     }