diff --git a/src/rodsolver.cc b/src/rodsolver.cc
index 5be307b4c901af9131a5f15289154ba4e442def8..de2f58ace2f0b2b51013a3335401a7d206dd7ea2 100644
--- a/src/rodsolver.cc
+++ b/src/rodsolver.cc
@@ -367,10 +367,13 @@ void RodSolver<GridType>::solve()
         hessianMatrix_->umv(corr, tmp);
         double modelDecrease = (rhs*corr) - 0.5 * (corr*tmp);
         
-        if (this->verbosity_ == FULL)
-            std::cout << "Model decrease: " << modelDecrease 
+        if (this->verbosity_ == FULL) {
+            std::cout << "Absolute model decrease: " << modelDecrease 
                       << ",  functional decrease: " << oldEnergy - energy << std::endl;
-        
+            std::cout << "Relative model decrease: " << modelDecrease / energy
+                      << ",  functional decrease: " << (oldEnergy - energy)/energy << std::endl;
+        }            
+
         assert(modelDecrease >= 0);
         
         if (energy >= oldEnergy) {
@@ -378,14 +381,16 @@ void RodSolver<GridType>::solve()
                 printf("Richtung ist keine Abstiegsrichtung!\n");
         }
 
-        if (std::abs(oldEnergy-energy) < 1e-12 || modelDecrease < 1e-10) {
+#if 1
+        if (std::abs(oldEnergy-energy)/energy < 1e-9 || modelDecrease/energy < 1e-9) {
             if (this->verbosity_ == FULL)
                 std::cout << "Suspecting rounding problems" << std::endl;
 
             if (this->verbosity_ != QUIET)
                 std::cout << i+1 << " trust-region steps were taken." << std::endl;
-            break;
+            //break;
         }
+#endif
 
         // //////////////////////////////////////////////
         //   Check for acceptance of the step