diff --git a/dune/solvers/solvers/quadraticipopt.hh b/dune/solvers/solvers/quadraticipopt.hh
index de2cb1d922c19a94bd00934fc122080e7f354e3c..391d0622a23e007a7699327f9a4e9a869e0c753c 100644
--- a/dune/solvers/solvers/quadraticipopt.hh
+++ b/dune/solvers/solvers/quadraticipopt.hh
@@ -756,7 +756,9 @@ void QuadraticIPOptSolver<MatrixType,VectorType,JacobianType>::solve()
   if (status == Ipopt::Invalid_Option)
     DUNE_THROW(Dune::Exception, "IPOpt returned 'Invalid_Option' error!");
 
-  if (status != Ipopt::Solve_Succeeded)
+  if (status == Ipopt::Solved_To_Acceptable_Level)
+      std::cout<<"WARNING: Desired tolerance could not be reached, but still accetable tolerance is reached.\n";
+  else if (status != Ipopt::Solve_Succeeded)
       DUNE_THROW(Dune::Exception, "IPOpt: Error during optimization!");
 }