diff --git a/dumux/nonlinear/newtonsolver.hh b/dumux/nonlinear/newtonsolver.hh
index d63a1347d2febc3565250287eb448da002bb5313..4bbd135460a88896d16f104cb3882055706b0e8f 100644
--- a/dumux/nonlinear/newtonsolver.hh
+++ b/dumux/nonlinear/newtonsolver.hh
@@ -492,8 +492,11 @@ public:
 
         if (verbose_)
         {
+            if (enableDynamicOutput_)
+                std::cout << '\r'; // move cursor to beginning of line
+
             auto width = std::to_string(maxSteps_).size();
-            std::cout << "\rNewton iteration " << std::setw(width) << numSteps_ << " done";
+            std::cout << "Newton iteration " << std::setw(width) << numSteps_ << " done";
 
             auto formatFlags = std::cout.flags();
             auto prec = std::cout.precision();
@@ -781,10 +784,9 @@ private:
                 if (numSteps_ > 0)
                     uLastIter = uCurrentIter;
 
-                if (verbose_) {
+                if (verbose_ && enableDynamicOutput_)
                     std::cout << "Assemble: r(x^k) = dS/dt + div F - q;   M = grad r"
                               << std::flush;
-                }
 
                 ///////////////
                 // assemble
@@ -804,11 +806,9 @@ private:
                 // http://en.wikipedia.org/wiki/ANSI_escape_code
                 const char clearRemainingLine[] = { 0x1b, '[', 'K', 0 };
 
-                if (verbose_) {
-                    std::cout << "\rSolve: M deltax^k = r";
-                    std::cout << clearRemainingLine
-                              << std::flush;
-                }
+                if (verbose_ && enableDynamicOutput_)
+                    std::cout << "\rSolve: M deltax^k = r"
+                              << clearRemainingLine << std::flush;
 
                 // solve the resulting linear equation system
                 solveTimer.start();
@@ -822,11 +822,9 @@ private:
                 ///////////////
                 // update
                 ///////////////
-                if (verbose_) {
-                    std::cout << "\rUpdate: x^(k+1) = x^k - deltax^k";
-                    std::cout << clearRemainingLine;
-                    std::cout.flush();
-                }
+                if (verbose_ && enableDynamicOutput_)
+                    std::cout << "\rUpdate: x^(k+1) = x^k - deltax^k"
+                              << clearRemainingLine << std::flush;
 
                 updateTimer.start();
                 // update the current solution (i.e. uOld) with the delta
@@ -1137,6 +1135,7 @@ private:
         enableShiftCriterion_ = getParamFromGroup<bool>(group, "Newton.EnableShiftCriterion");
         enableResidualCriterion_ = getParamFromGroup<bool>(group, "Newton.EnableResidualCriterion") || enableAbsoluteResidualCriterion_;
         satisfyResidualAndShiftCriterion_ = getParamFromGroup<bool>(group, "Newton.SatisfyResidualAndShiftCriterion");
+        enableDynamicOutput_ = getParamFromGroup<bool>(group, "Newton.EnableDynamicOutput", true);
 
         if (!enableShiftCriterion_ && !enableResidualCriterion_)
         {
@@ -1242,6 +1241,7 @@ private:
     bool enableShiftCriterion_;
     bool enableResidualCriterion_;
     bool satisfyResidualAndShiftCriterion_;
+    bool enableDynamicOutput_;
 
     //! the parameter group for getting parameters from the parameter tree
     std::string paramGroup_;
diff --git a/test/freeflow/shallowwater/dambreak/params.input b/test/freeflow/shallowwater/dambreak/params.input
index 9d9fc00393d321f9aebb3b370f7cbd2d58973b2f..8f26f0bc1d1247cdee85d7a8f4c7a56f6fb1746e 100644
--- a/test/freeflow/shallowwater/dambreak/params.input
+++ b/test/freeflow/shallowwater/dambreak/params.input
@@ -14,4 +14,4 @@ Cells1 = 25
 
 [Newton]
 EnablePartialReassembly = true
-
+EnableDynamicOutput = false