diff --git a/dune/solvers/iterationsteps/mmgstep.cc b/dune/solvers/iterationsteps/mmgstep.cc
index 95a6554b1dfee5c11aae1b5004e1a1dd42c39ed2..510829e5b4c66035e2ba9bdce28d20c72b38a905 100644
--- a/dune/solvers/iterationsteps/mmgstep.cc
+++ b/dune/solvers/iterationsteps/mmgstep.cc
@@ -316,8 +316,12 @@ void MonotoneMGStep<MatrixType, VectorType>::iterate()
     }
 
     // Debug: output energy
-    if (level==(int) this->numLevels()-1 && this->verbosity_==NumProc::FULL)
+    if (level==(int) this->numLevels()-1 && this->verbosity_==NumProc::FULL) {
+        std::streamsize const oldPrecision = std::cout.precision()
         std::cout << "Total energy: "
-                  << std::setprecision(10) << computeEnergy(*mat[level], *x[level], rhs[level]) << std::endl;
+                  << std::setprecision(10)
+                  << computeEnergy(*mat[level], *x[level], rhs[level]) << std::endl
+                  << std::setprecision(oldPrecision);
+    }
 
 }