diff --git a/AMDiS/src/Marker.cc b/AMDiS/src/Marker.cc
index 249832d18cb639433984dca748a3b726f24f5a13..c817a90a27122392e80e541fe13488732ff4a3f1 100644
--- a/AMDiS/src/Marker.cc
+++ b/AMDiS/src/Marker.cc
@@ -49,7 +49,9 @@ namespace AMDiS {
     double lError = el->getEstimation(row);
     
     if (adaptInfo->isRefinementAllowed(row == -1 ? 0 : row) && lError > markRLimit) {
-      setMark(el, adaptInfo->getRefineBisections(row == -1 ? 0 : row));
+      if ((maxRefineLevel == -1) || (static_cast<int>(elInfo->getLevel()) < maxRefineLevel)) { 
+	setMark(el, adaptInfo->getRefineBisections(row == -1 ? 0 : row));
+      }
     } else {
       if (adaptInfo->isCoarseningAllowed(row == -1 ? 0 : row) && lError <= markCLimit) {
 	if (!el->getElementData()->getElementData(COARSENABLE) || 
@@ -72,10 +74,7 @@ namespace AMDiS {
     ElInfo *elInfo = NULL;
     elInfo = stack.traverseFirst(mesh, -1, Mesh::CALL_LEAF_EL);
     while (elInfo) {
-      if ((maxRefineLevel > -1) && 
-	  (static_cast<int>(elInfo->getLevel()) < maxRefineLevel)) { 
-	markElement(adaptInfo, elInfo);
-      }
+      markElement(adaptInfo, elInfo);
 
       elInfo = stack.traverseNext(elInfo);
     }