diff --git a/AMDiS/src/parallel/ParallelDofMapping.cc b/AMDiS/src/parallel/ParallelDofMapping.cc
index 7cb015e3c01d78ebfa5d8d105416c605a34105fc..1b2540afc8c31ad78c853182a4ca00bfd5753485 100644
--- a/AMDiS/src/parallel/ParallelDofMapping.cc
+++ b/AMDiS/src/parallel/ParallelDofMapping.cc
@@ -213,7 +213,7 @@ namespace AMDiS {
       levelData(NULL),
       dofComm(NULL),
       globalMapping(true),
-      needMatIndexFromGlobal(false),
+      needMatIndexFromGlobal(true),
       nRankDofs(1),
       nLocalDofs(1),
       nOverallDofs(1),
diff --git a/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc b/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
index b1aa7ba397f8b0d92c584616088acc7d1ecf9706..8d4feaa49cec385688e13484f53bdef7db3541b5 100644
--- a/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
+++ b/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
@@ -605,7 +605,7 @@ namespace AMDiS {
   }
 
 
-  void PetscSolverGlobalMatrix::initSolver(KSP ksp)
+  void PetscSolverGlobalMatrix::initSolver(KSP &ksp)
   {
     FUNCNAME("PetscSolverGlobalMatrix::initSolver()");
 
diff --git a/AMDiS/src/parallel/PetscSolverGlobalMatrix.h b/AMDiS/src/parallel/PetscSolverGlobalMatrix.h
index 0a5f4089a18107970c825a6e8820a1eef8c3bb26..8f3f7ef172b1e9a44b35f33908e604d68e3508be 100644
--- a/AMDiS/src/parallel/PetscSolverGlobalMatrix.h
+++ b/AMDiS/src/parallel/PetscSolverGlobalMatrix.h
@@ -88,7 +88,7 @@ namespace AMDiS {
      */
     void createFieldSplit(PC pc, string splitName, vector<int> &components);
 
-    virtual void initSolver(KSP ksp);
+    virtual void initSolver(KSP &ksp);
 
     virtual void exitSolver(KSP ksp);
 
diff --git a/AMDiS/src/parallel/PetscSolverNavierStokes.cc b/AMDiS/src/parallel/PetscSolverNavierStokes.cc
index cc9f819dc82d021b8ab67fe1b990589caa426630..3c53b91ac97f4d663a7347369269e61455ea4bec 100644
--- a/AMDiS/src/parallel/PetscSolverNavierStokes.cc
+++ b/AMDiS/src/parallel/PetscSolverNavierStokes.cc
@@ -18,7 +18,7 @@ namespace AMDiS {
   using namespace std;
 
   
-  void PetscSolverNavierStokes::initSolver(KSP ksp)
+  void PetscSolverNavierStokes::initSolver(KSP &ksp)
   {
     FUNCNAME("PetscSolverNavierStokes::initSolver()");
 
diff --git a/AMDiS/src/parallel/PetscSolverNavierStokes.h b/AMDiS/src/parallel/PetscSolverNavierStokes.h
index 57a869947f8f948ac08f685392abe3075a32847d..4d710047143016b0f69f695399cae119541b0958 100644
--- a/AMDiS/src/parallel/PetscSolverNavierStokes.h
+++ b/AMDiS/src/parallel/PetscSolverNavierStokes.h
@@ -37,7 +37,7 @@ namespace AMDiS {
     {}
 
   protected:
-    void initSolver(KSP ksp);
+    void initSolver(KSP &ksp);
 
     void initPreconditioner(PC pc);
   };