diff --git a/AMDiS/src/parallel/GlobalMatrixSolver.cc b/AMDiS/src/parallel/GlobalMatrixSolver.cc
index b26b668a03d425ce1afb652cc98609d5588163a4..b950675c574e3308988dc82ff91f77d58a436cc2 100644
--- a/AMDiS/src/parallel/GlobalMatrixSolver.cc
+++ b/AMDiS/src/parallel/GlobalMatrixSolver.cc
@@ -4,7 +4,6 @@
 #include "DOFVector.h"
 #include "Debug.h"
 #include "SystemVector.h"
-#include "VtkWriter.h"
 
 #include "petscksp.h"
 
@@ -47,7 +46,7 @@ namespace AMDiS {
     clock_t first = clock();
 
     fillPetscMatrix(systemMatrix, rhs);
-    solvePetscMatrix(*solution);
+    solvePetscMatrix(*solution, adaptInfo);
 
 #ifdef _OPENMP
     INFO(info, 8)("solution of discrete system needed %.5f seconds system time / %.5f seconds wallclock time\n",
@@ -474,7 +473,7 @@ namespace AMDiS {
   }
 
 
-  void GlobalMatrixSolver::solvePetscMatrix(SystemVector &vec)
+    void GlobalMatrixSolver::solvePetscMatrix(SystemVector &vec, AdaptInfo *adaptInfo)
   {
     FUNCNAME("GlobalMatrixSolver::solvePetscMatrix()");
 
@@ -535,7 +534,8 @@ namespace AMDiS {
     int iterations = 0;
     KSPGetIterationNumber(solver, &iterations);
     MSG("  Number of iterations: %d\n", iterations);
-    
+    adaptInfo->setSolverIterations(iterations);
+
     double norm = 0.0;
     MatMult(petscMatrix, petscSolVec, petscTmpVec);
     VecAXPY(petscTmpVec, -1.0, petscRhsVec);
diff --git a/AMDiS/src/parallel/GlobalMatrixSolver.h b/AMDiS/src/parallel/GlobalMatrixSolver.h
index d133e69555e5824ba31feaed2d9951a826cee7db..08f3656f6b5c4c71678e5cdaa8c00e87f3a1b5d5 100644
--- a/AMDiS/src/parallel/GlobalMatrixSolver.h
+++ b/AMDiS/src/parallel/GlobalMatrixSolver.h
@@ -79,7 +79,7 @@ namespace AMDiS {
     void setDofVector(Vec& petscVec, DOFVector<double>* vec, 
 		      int disMult = 1, int dispAdd = 0);
 
-    void solvePetscMatrix(SystemVector &vec);
+    void solvePetscMatrix(SystemVector &vec, AdaptInfo *adaptInfo);
 
   protected:
     MeshDistributor *meshDistributor;