diff --git a/AMDiS/src/DOFVector.cc b/AMDiS/src/DOFVector.cc
index f9fbae1c18cfa704b4e78f239938d89ab2ef9851..799edb3cb4b344f695484a9e71aa3cf370b819fc 100644
--- a/AMDiS/src/DOFVector.cc
+++ b/AMDiS/src/DOFVector.cc
@@ -555,6 +555,7 @@ namespace AMDiS {
     } else {
       if (!result) {
 	result = NEW WorldVector<DOFVector<double>*>;
+
 	result->set(NULL);
       }
       for (int i = 0; i < dow; i++) {
@@ -586,8 +587,9 @@ namespace AMDiS {
       numNodes += numPositionNodes;
     }
 
-    TEST_EXIT_DBG(numNodes == mesh->getNumberOfNodes())
-      ("invalid number of nodes\n");
+//     TEST_EXIT_DBG(numNodes == mesh->getNumberOfNodes())
+//       ("invalid number of nodes\n");
+
     TEST_EXIT_DBG(numDOFs == basFcts->getNumber())
       ("number of dofs != number of basis functions\n");
     
@@ -598,7 +600,7 @@ namespace AMDiS {
     // traverse mesh
     std::vector<bool> visited(getUsedSize(), false);
     TraverseStack stack;
-    Flag fillFlag = Mesh::CALL_LEAF_EL | Mesh::FILL_GRD_LAMBDA;
+    Flag fillFlag = Mesh::CALL_LEAF_EL | Mesh::FILL_GRD_LAMBDA | Mesh::FILL_COORDS;
     ElInfo *elInfo = stack.traverseFirst(mesh, -1, fillFlag);
     WorldVector<double> grd;
 
@@ -614,11 +616,10 @@ namespace AMDiS {
 	  DegreeOfFreedom dofIndex = dof[i][numNodePreDOFs[localDOFNr] + j];
 
 	  if (!visited[dofIndex]) {
-	    basFcts->evalGrdUh(*(bary[localDOFNr]), grdLambda, 
-			       localUh, &grd);
+	    basFcts->evalGrdUh(*(bary[localDOFNr]), grdLambda, localUh, &grd);
 
 	    for (int k = 0; k < dow; k++) {
-	      (*result)[k][dofIndex] = grd[k];
+	      (*(*result)[k])[dofIndex] = grd[k];
 	    }
 
 	    visited[dofIndex] = true;