diff --git a/AMDiS/src/DOFVector.cc b/AMDiS/src/DOFVector.cc
index 3eaf62deba8cd03868de19621b1eb0b020d9790f..36ac7118450e2caff0f6fe525265fccc09080b12 100644
--- a/AMDiS/src/DOFVector.cc
+++ b/AMDiS/src/DOFVector.cc
@@ -96,8 +96,8 @@ namespace AMDiS {
 
     if (inside) {
       basFcts->getLocalIndices(elInfo->getElement(), feSpace->getAdmin(), localIndices);
-      ElementVector uh(lambda.size());
-      for (int i = 0; i < lambda.size(); i++)
+      ElementVector uh(nBasFcts);
+      for (int i = 0; i < nBasFcts; i++)
         uh[i] = operator[](localIndices[i]);
       value = basFcts->evalUh(lambda, uh);
     } else
@@ -145,8 +145,8 @@ namespace AMDiS {
 
     if (inside) {
       basFcts->getLocalIndices(elInfo->getElement(), feSpace->getAdmin(), localIndices);
-      mtl::dense_vector<WorldVector<double> > uh(lambda.size());
-      for (int i = 0; i < lambda.size(); i++)
+      mtl::dense_vector<WorldVector<double> > uh(nBasFcts);
+      for (int i = 0; i < nBasFcts; i++)
         uh[i] = operator[](localIndices[i]);
       *val = basFcts->evalUh(lambda, uh);
     } else
diff --git a/AMDiS/src/DOFVector.hh b/AMDiS/src/DOFVector.hh
index ffb06041eb8c87c832b8fba3bd40ac229627ca28..15085ee91fc07fb259592f391ae590b0784ecf09 100644
--- a/AMDiS/src/DOFVector.hh
+++ b/AMDiS/src/DOFVector.hh
@@ -980,16 +980,20 @@ namespace AMDiS {
       return false;
     
     basFcts->getLocalIndices(elInfo->getElement(), this->feSpace->getAdmin(), localIndices);
-    FixVec<WorldVector<double>, VERTEX> coords = elInfo->getCoords();
+    
+    WorldVector<double> coord;
     int minIdx = -1;
     double minDist = 1.e15;
     
-    for (int i = 0; i < coords.size(); i++) {
-      WorldVector<double> dist = coords[i] - p;
+    for (int i = 0; i < numBasFcts; i++) {
+      elInfo->coordToWorld(*(basFcts->getCoords(i)), coord);
+      WorldVector<double> dist = coord - p;
       double newDist = norm(dist);
       if (newDist < minDist) {
 	minIdx = i;
 	minDist = newDist;
+	if (minDist < 1.e-10)
+	  break;
       }
     }