diff --git a/AMDiS/src/AdaptInstationary.cc b/AMDiS/src/AdaptInstationary.cc
index b1c16f3c9461367f33933df51bcf126e391ab435..81bd2712c5ced2bbf7ebdb82e40c489b434907d0 100644
--- a/AMDiS/src/AdaptInstationary.cc
+++ b/AMDiS/src/AdaptInstationary.cc
@@ -273,8 +273,6 @@ namespace AMDiS {
   {
     FUNCNAME("AdaptInstationary::oneTimestep()");
 
-    MSG("ONE TIMESTEP!\n");
-
     adaptInfo->setTimestepIteration(0);
 
     switch (strategy) {
diff --git a/AMDiS/src/Operator.cc b/AMDiS/src/Operator.cc
index 08fdcc2285e1aa3bc4fadae978aff84af1f38257..8e5ea6cdd6322117301d2be23bb07849eeabf252 100644
--- a/AMDiS/src/Operator.cc
+++ b/AMDiS/src/Operator.cc
@@ -195,4 +195,36 @@ namespace AMDiS {
       static_cast<SecondOrderTerm*>(*termIt)->weakEval(grdUhAtQP, result);
   }
  
+
+  void Operator::addTerm(ZeroOrderTerm *term)
+  {
+    zeroOrder.push_back(term);
+    term->operat = this;
+    for (std::set<const FiniteElemSpace*>::iterator it = term->getAuxFeSpaces().begin();
+   it != term->getAuxFeSpaces().end(); ++it)
+      auxFeSpaces.insert(*it);
+  }
+
+  void Operator::addTerm(FirstOrderTerm *term,
+           FirstOrderType type)
+  {
+    if (type == GRD_PSI) {
+      firstOrderGrdPsi.push_back(term);
+    } else {
+      firstOrderGrdPhi.push_back(term);
+    }
+    term->operat = this;
+    for (std::set<const FiniteElemSpace*>::iterator it = term->getAuxFeSpaces().begin();
+   it != term->getAuxFeSpaces().end(); ++it)
+      auxFeSpaces.insert(*it);
+  }
+
+  void Operator::addTerm(SecondOrderTerm *term)
+  {
+    secondOrder.push_back(term);
+    term->operat = this;
+    for (std::set<const FiniteElemSpace*>::iterator it = term->getAuxFeSpaces().begin();
+   it != term->getAuxFeSpaces().end(); ++it)
+      auxFeSpaces.insert(*it);
+  }
 }
diff --git a/AMDiS/src/Operator.h b/AMDiS/src/Operator.h
index ec2d1ba3144a4707498f9c61be4f4ef0cf351d89..2f5badc5ab98eecb0a6304bacdccdb1b6906f2c7 100644
--- a/AMDiS/src/Operator.h
+++ b/AMDiS/src/Operator.h
@@ -90,6 +90,10 @@ namespace AMDiS {
     template <typename T>
     void addZeroOrderTerm(T *term);
 
+    void addTerm(ZeroOrderTerm *term);
+    void addTerm(FirstOrderTerm *term,
+      FirstOrderType type);
+    void addTerm(SecondOrderTerm *term);
 
     /** \brief
      * Calculates the element matrix for this ElInfo and adds it multiplied by
diff --git a/AMDiS/src/RefinementManager3d.cc b/AMDiS/src/RefinementManager3d.cc
index b14180c4c8fe3b59d491f237ad54232aef83042d..37772180bfad25421dab5dfdb10cc9388fdc3c9e 100644
--- a/AMDiS/src/RefinementManager3d.cc
+++ b/AMDiS/src/RefinementManager3d.cc
@@ -414,7 +414,9 @@ namespace AMDiS {
       return true;    
   
     int oppVertex = (*elInfo)->getOppVertex(localNeighbour);
+    #if DEBUG
     int testIndex = (*elInfo)->getNeighbour(localNeighbour)->getIndex();
+    #endif
     ElInfo *neighInfo = stack->traverseNeighbour3d((*elInfo), localNeighbour);
     int neighElType = neighInfo->getType();
 
@@ -559,7 +561,10 @@ namespace AMDiS {
 
 	if (neighInfo->getNeighbour(i)) {
 	  oppVertex = neighInfo->getOppVertex(i);
+    
+    #if DEBUG
 	  int testIndex = neighInfo->getNeighbour(i)->getIndex();
+    #endif
 
 	  neighInfo = stack->traverseNeighbour3d(neighInfo, i);
 
@@ -591,7 +596,9 @@ namespace AMDiS {
 	("While looping back domains boundary was reached or i == 0\n");
       oppVertex = refineList.getOppVertex(i--, 0);
 
+      #if DEBUG
       int testIndex = neighInfo->getNeighbour(oppVertex)->getIndex();
+      #endif
       neighInfo = stack->traverseNeighbour3d(neighInfo, oppVertex);
 
       int edgeDof0, edgeDof1;