diff --git a/src/rodsolver.cc b/src/rodsolver.cc
index c445a65e8310f8054ee1bf6437f8f55b76f6dbc7..5be307b4c901af9131a5f15289154ba4e442def8 100644
--- a/src/rodsolver.cc
+++ b/src/rodsolver.cc
@@ -216,17 +216,20 @@ void RodSolver<GridType>::solve()
     // /////////////////////////////////////////////////////
     for (int i=0; i<maxTrustRegionSteps_; i++) {
         
-        std::cout << "----------------------------------------------------" << std::endl;
-        std::cout << "      Trust-Region Step Number: " << i << std::endl;
-        std::cout << "----------------------------------------------------" << std::endl;
-        
-        std::cout << "### Trust-Region Radius: " << trustRegionRadius << " ###" << std::endl;
-        
+        if (this->verbosity_ == FULL) {
+            std::cout << "----------------------------------------------------" << std::endl;
+            std::cout << "      Trust-Region Step Number: " << i << std::endl;
+            std::cout << "----------------------------------------------------" << std::endl;
+            
+            std::cout << "### Trust-Region Radius: " << trustRegionRadius << " ###" << std::endl;
+        }
+
         CorrectionType rhs;
         CorrectionType corr(x_.size());
         corr = 0;
 
-        std::cout << "Rod energy: " <<rodAssembler_->computeEnergy(x_) << std::endl;
+        if (this->verbosity_ == FULL)
+            std::cout << "Rod energy: " <<rodAssembler_->computeEnergy(x_) << std::endl;
         //rodAssembler_->assembleGradient(x_, rhs);
         rodAssembler_->assembleGradientFD(x_, rhs);
         //rodAssembler_->assembleMatrix(x_, *hessianMatrix_);
@@ -323,10 +326,15 @@ void RodSolver<GridType>::solve()
             
         }
 
+        if (this->verbosity_ == FULL)
+            printf("infinity norm of the correction: %g\n", corr.infinity_norm());
 
-        printf("infinity norm of the correction: %g\n", corr.infinity_norm());
         if (corr.infinity_norm() < tolerance_) {
-            std::cout << "CORRECTION IS SMALL ENOUGH" << std::endl;
+            if (this->verbosity_ == FULL)
+                std::cout << "CORRECTION IS SMALL ENOUGH" << std::endl;
+
+            if (this->verbosity_ != QUIET)
+                std::cout << i+1 << " trust-region steps were taken." << std::endl;
             break;
         }
         
@@ -359,19 +367,23 @@ void RodSolver<GridType>::solve()
         hessianMatrix_->umv(corr, tmp);
         double modelDecrease = (rhs*corr) - 0.5 * (corr*tmp);
         
-        std::cout << "Model decrease: " << modelDecrease 
-                  << ",  functional decrease: " << oldEnergy - energy << std::endl;
+        if (this->verbosity_ == FULL)
+            std::cout << "Model decrease: " << modelDecrease 
+                      << ",  functional decrease: " << oldEnergy - energy << std::endl;
         
         assert(modelDecrease >= 0);
         
         if (energy >= oldEnergy) {
-            printf("Richtung ist keine Abstiegsrichtung!\n");
-//             std::cout << "old energy: " << oldEnergy << "   new energy: " << energy << std::endl;
-//             exit(0);
+            if (this->verbosity_ == FULL)
+                printf("Richtung ist keine Abstiegsrichtung!\n");
         }
 
         if (std::abs(oldEnergy-energy) < 1e-12 || modelDecrease < 1e-10) {
-            std::cout << "Suspecting rounding problems" << std::endl;
+            if (this->verbosity_ == FULL)
+                std::cout << "Suspecting rounding problems" << std::endl;
+
+            if (this->verbosity_ != QUIET)
+                std::cout << i+1 << " trust-region steps were taken." << std::endl;
             break;
         }
 
@@ -392,11 +404,13 @@ void RodSolver<GridType>::solve()
         } else {
             // unsuccessful iteration
             trustRegionRadius /= 2;
-            std::cout << "Unsuccessful iteration!" << std::endl;
+            if (this->verbosity_ == FULL)
+                std::cout << "Unsuccessful iteration!" << std::endl;
         }
         
         //  Write current energy
-        std::cout << "--- Current energy: " << energy << " ---" << std::endl;
+        if (this->verbosity_ == FULL)
+            std::cout << "--- Current energy: " << energy << " ---" << std::endl;
 
         // /////////////////////////////////////////////////////////////////////
         //   Write the iterate to disk for later convergence rate measurement