diff --git a/AMDiS/src/parallel/MeshDistributor.cc b/AMDiS/src/parallel/MeshDistributor.cc
index 1bdbac56a346b902aa09e579f353cbf1242ebf27..5f85e17741a0baa8d84e7781c08892d77d6f0aa6 100644
--- a/AMDiS/src/parallel/MeshDistributor.cc
+++ b/AMDiS/src/parallel/MeshDistributor.cc
@@ -147,7 +147,8 @@ namespace AMDiS {
 
     bool doNext = false;
     do {
-      for (unsigned int i = 0; i < feSpaces.size() - 1; i++)
+      doNext = false;
+      for (unsigned int i = 0; i < feSpaces.size() - 1; i++) {
 	if (feSpaces[i]->getBasisFcts()->getDegree() >
 	    feSpaces[i + 1]->getBasisFcts()->getDegree()) {
 	  const FiniteElemSpace *tmp = feSpaces[i + 1];
@@ -155,6 +156,7 @@ namespace AMDiS {
 	  feSpaces[i] = tmp;
 	  doNext = true;
 	}
+      }
     } while (doNext);
 
     elObjDb.setMesh(feSpaces[0]->getMesh());