diff --git a/src/rodsolver.cc b/src/rodsolver.cc
index 76b0c8681bbd4044ae57603ab35eb80b5fd3b55b..c445a65e8310f8054ee1bf6437f8f55b76f6dbc7 100644
--- a/src/rodsolver.cc
+++ b/src/rodsolver.cc
@@ -370,8 +370,10 @@ void RodSolver<GridType>::solve()
 //             exit(0);
         }
 
-        if (std::abs(oldEnergy-energy) < 1e-12)
+        if (std::abs(oldEnergy-energy) < 1e-12 || modelDecrease < 1e-10) {
             std::cout << "Suspecting rounding problems" << std::endl;
+            break;
+        }
 
         // //////////////////////////////////////////////
         //   Check for acceptance of the step