diff --git a/dune/solvers/solvers/loopsolver.cc b/dune/solvers/solvers/loopsolver.cc
index 01593c5200f9cd3e0447061c6bded0ae48327a18..7a7b4c641bc5f2279d19f74324864d6b8fd89b07 100644
--- a/dune/solvers/solvers/loopsolver.cc
+++ b/dune/solvers/solvers/loopsolver.cc
@@ -157,20 +157,28 @@ void Dune::Solvers::LoopSolver<VectorType, BitVectorType>::solve()
             std::cout.flags(oldFormatFlags);
 
             std::cout << this->iterationStep_->getOutput();
+        }
 
-            bool stop = false;
-            for(auto&& c: criteria_)
+        // execute the stop criteria regardless of the verbosity
+        bool stop = false;
+        for(auto&& c: criteria_)
+        {
+            auto r = c();
+            stop = stop or std::get<0>(r);
+            if (this->verbosity_ == NumProc::FULL)
             {
-                auto r = c();
-                stop = stop or std::get<0>(r);
-                std::cout << std::get<1>(r);
+              std::cout << std::get<1>(r);
             }
+        }
 
+        if (this->verbosity_ == NumProc::FULL)
+        {
             std::cout << std::endl;
-
-            if (stop)
-                break;
         }
+
+        if (stop)
+            break;
+
     }