diff --git a/dune/solvers/solvers/loopsolver.cc b/dune/solvers/solvers/loopsolver.cc
index 96ab9c1a9b75031be8338590f3d3e5d875833d0a..59e696c3bf45142b2980efd25c0462b386fa6099 100644
--- a/dune/solvers/solvers/loopsolver.cc
+++ b/dune/solvers/solvers/loopsolver.cc
@@ -124,37 +124,39 @@ void ::LoopSolver<VectorType, BitVectorType>::solve()
 
         // Output
         if (this->verbosity_ == NumProc::FULL) {
+            std::streamsize const oldPrecision = std::cout.precision();
+            std::ios_base::fmtflags const oldFormatFlags = std::cout.flags();
+
             std::cout << std::setw(5) << i;
 
             if (this->useRelativeError_)
             {
-                std::cout << std::setiosflags(std::ios::scientific);
-                std::cout << std::setw(15) << std::setprecision(7) << error;
-                std::cout << std::resetiosflags(std::ios::scientific);
+                std::cout << std::scientific
+                          << std::setw(15) << std::setprecision(7) << error;
             }
 
             if (referenceSolution_)
             {
-                std::cout << std::setiosflags(std::ios::scientific);
-                std::cout << std::setw(15) << std::setprecision(7) << normOfError;
-                std::cout << std::resetiosflags(std::ios::scientific);
+                std::cout << std::scientific
+                          << std::setw(15) << std::setprecision(7) << normOfError;
             }
 
-            std::cout << std::setiosflags(std::ios::scientific);
-            std::cout << std::setw(15) << std::setprecision(7) << normOfCorrection;
-            std::cout << std::resetiosflags(std::ios::scientific);
+            std::cout << std::scientific
+                      << std::setw(15) << std::setprecision(7) << normOfCorrection;
 
-            std::cout << std::setiosflags(std::ios::fixed);
-            if (i==0)  // We can't estimate the convergence rate at the first iteration
+            if (i == 0)
+                // We can't estimate the convergence rate at the first iteration
                 std::cout << "         ";
             else
-                std::cout << std::setw(9) << std::setprecision(5) << convRate;
-            std::cout << std::resetiosflags(std::ios::fixed);
+                std::cout << std::fixed
+                          << std::setw(9) << std::setprecision(5) << convRate;
+
+            std::cout << std::setprecision(oldPrecision)
+                      << std::setiosflags(oldFormatFlags);
 
             std::cout << this->iterationStep_->getOutput();
             std::cout << std::endl;
         }
-
     }