diff --git a/AMDiS/src/Assembler.cc b/AMDiS/src/Assembler.cc
index 28da4775bbf5d829ae32edb488e42ca56f1e7da8..09b65c9bc913c3b228e7f09b20ab104895ca6b37 100644
--- a/AMDiS/src/Assembler.cc
+++ b/AMDiS/src/Assembler.cc
@@ -204,6 +204,7 @@ namespace AMDiS {
     }
 
     ElementVector& vec = rememberElVec ? elementVector : userVec;
+
     if (operat->uhOld && remember) {
       matVecAssemble(elInfo, vec);
       if (rememberElVec)
@@ -264,16 +265,25 @@ namespace AMDiS {
       return;
     } 
 
-    ERROR_EXIT("Not yet implemented!\n");
+    if (firstOrderAssemblerGrdPsi) {
+      ERROR_EXIT("Not yet implemented!\n");
+    }
+
+    if (zeroOrderAssembler) {
+      zeroOrderAssembler->calculateElementVector(smallElInfo, vec);
+      
+      if (smallElInfo != mainElInfo) {
+	ElementVector tmpVec(vec);	
+	ElementMatrix &m = 
+	  smallElInfo->getSubElemCoordsMat(rowFESpace->getBasisFcts()->getDegree());
+
+	tmpVec = m * vec;	
+	vec = tmpVec;
+      }      
+    }
 
-#if 0
-    if (firstOrderAssemblerGrdPsi)
-      firstOrderAssemblerGrdPsi->calculateElementVector(elInfo, vec);    
-    if (zeroOrderAssembler)
-      zeroOrderAssembler->calculateElementVector(elInfo, vec);    
     if (rememberElVec)
-      axpy(factor, *elementVector, *userVec);
-#endif
+      userVec += factor * elementVector;    
   }