diff --git a/dune/gfe/riemanniantrsolver.cc b/dune/gfe/riemanniantrsolver.cc
index e1b61218e9e2eaba345796ea26329634ae18b527..110939e3d63880ae54f81740802812d6f05621d2 100644
--- a/dune/gfe/riemanniantrsolver.cc
+++ b/dune/gfe/riemanniantrsolver.cc
@@ -1,4 +1,5 @@
 #include <dune/common/bitsetvector.hh>
+#include <dune/common/timer.hh>
 
 #include <dune/istl/io.hh>
 
@@ -104,7 +105,7 @@ setup(const GridType& grid,
                                                                                                    innerIterations_,
                                                                                                    innerTolerance_,
                                                                                                    h1SemiNorm_,
-                                                                                                 Solver::QUIET));
+                                                                                                 Solver::FULL));
 
     // Write all intermediate solutions, if requested
     if (instrumented_
@@ -178,7 +179,8 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve()
     //   Trust-Region Solver
     // /////////////////////////////////////////////////////
     for (int i=0; i<maxTrustRegionSteps_; i++) {
-        
+
+        Dune::Timer totalTimer;
         if (this->verbosity_ == Solver::FULL) {
             std::cout << "----------------------------------------------------" << std::endl;
             std::cout << "      Trust-Region Step Number: " << i 
@@ -191,11 +193,15 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve()
         CorrectionType corr(x_.size());
         corr = 0;
 
+        Dune::Timer gradientTimer;
         assembler_->assembleGradient(x_, rhs);
+        std::cout << "gradient assembly took " << gradientTimer.elapsed() << " sec." << std::endl;
+        gradientTimer.reset();
         assembler_->assembleMatrix(x_, 
                                    *hessianMatrix_, 
                                    i==0    // assemble occupation pattern only for the first call
                                    );
+        std::cout << "hessian assembly took " << gradientTimer.elapsed() << " sec." << std::endl;
 
         //gradientFDCheck(x_, rhs, *rodAssembler_);
         //hessianFDCheck(x_, *hessianMatrix_, *rodAssembler_);
@@ -419,7 +425,7 @@ void RiemannianTrustRegionSolver<GridType,TargetSpace>::solve()
             fclose(fpRod);
 
         }
-
+        std::cout << "iteration took " << totalTimer.elapsed() << " sec." << std::endl;
     }
 
     // //////////////////////////////////////////////