diff --git a/AMDiS/src/DOFVector.cc b/AMDiS/src/DOFVector.cc
index ab89835fc07bb09193c3c67459e373cd91269a8f..5a0924847c8501afaf65db16e5cb15cbe57ff23e 100644
--- a/AMDiS/src/DOFVector.cc
+++ b/AMDiS/src/DOFVector.cc
@@ -758,6 +758,9 @@ namespace AMDiS {
     TEST_EXIT_DBG(!quadFast || quadFast->getBasisFunctions() == feSpace->getBasisFcts())
       ("invalid basis functions");
 
+    if (smallElInfo->getMesh() == feSpace->getMesh())
+      return getVecAtQPs(smallElInfo, quad, quadFast, vecAtQPs);
+
     const BasisFunction *basFcts = feSpace->getBasisFcts();
     int nPoints = 
       quadFast ? quadFast->getQuadrature()->getNumPoints() : quad->getNumPoints(); 
@@ -943,11 +946,11 @@ namespace AMDiS {
       double det = dualElInfo.smallElInfo->getDet();
       double tmp = 0.0;      
       vec1.getVecAtQPs(dualElInfo.smallElInfo, dualElInfo.largeElInfo,
-		       quad, fastQuad, &(qp1[0]));
+		       quad, NULL, &(qp1[0]));
       vec2.getVecAtQPs(dualElInfo.smallElInfo, dualElInfo.largeElInfo,
-		       quad, fastQuad, &(qp2[0]));      
-      for (int iq = 0; iq < fastQuad->getNumPoints(); iq++)
- 	tmp += fastQuad->getWeight(iq) * (*fct)(qp1[iq], qp2[iq]);
+		       quad, NULL, &(qp2[0]));      
+      for (int iq = 0; iq < quad->getNumPoints(); iq++)
+ 	tmp += quad->getWeight(iq) * (*fct)(qp1[iq], qp2[iq]);
       
       value += tmp * det;