diff --git a/AMDiS/src/ParallelProblem.cc b/AMDiS/src/ParallelProblem.cc
index b5b7f46bb091ac4562fac2e20370d4aa020eee13..39811f5aebc5f58b24cb3183c2b7dc97f1cc1518 100644
--- a/AMDiS/src/ParallelProblem.cc
+++ b/AMDiS/src/ParallelProblem.cc
@@ -461,7 +461,7 @@ namespace AMDiS {
     if (debugMode) {
       dbgMesh = mesh;
       if (mpiRank == 0) {
-	structures[mpiRank].fitMeshToStructure(dbgMesh,
+      	structures[mpiRank].fitMeshToStructure(dbgMesh,
 					       refinementManager,
 					       true, true);
       }
@@ -1487,11 +1487,18 @@ namespace AMDiS {
     if (debugMode) {
       dbgRankSolution.resize(mpiSize);
       for (int i = 0; i < mpiSize; i++) {
-	dbgRankSolution[i] = NEW SystemVector(*(rankSolution[i]));
+	dbgRankSolution[i] = NEW SystemVector("debug rank solution", feSpaces, nComponents);
+	for (int j = 0; j < nComponents; j++) {
+	  dbgRankSolution[i]->setDOFVector(j, NEW DOFVector<double>(feSpaces[j], 
+								    "debug rank solution"));	
+	}
       }
 
       if (mpiRank == 0) {
-	dbgSolution = NEW SystemVector(*(problem->getSolution()));
+      	dbgSolution = NEW SystemVector("debug solution", feSpaces, nComponents);
+	for (int i = 0; i < nComponents; i++) {
+	  dbgSolution->setDOFVector(i, NEW DOFVector<double>(feSpaces[i], "debug solution"));
+	}
       }
     }
 
@@ -1518,7 +1525,7 @@ namespace AMDiS {
 	}
 	DELETE dbgRankSolution[i];
       }
-
+      
       if (mpiRank == 0) {
 	for (int i = 0; i < nComponents; i++) {
 	  DELETE dbgSolution->getDOFVector(i);