diff --git a/AMDiS/src/MeshStructure.cc b/AMDiS/src/MeshStructure.cc
index 7c65aa6e8d455ffa225276d3b1b7014301626c9a..d365081835824cd0f15dd2cbae7b2045015bf0cb 100644
--- a/AMDiS/src/MeshStructure.cc
+++ b/AMDiS/src/MeshStructure.cc
@@ -137,14 +137,18 @@ namespace AMDiS {
 
       if (!reverseOrder) {
 	if (s1 != -1) 
-	  addAlongSide(el->getFirstChild(), subObj, s1, el->getChildType(elType), reverseOrder);
+	  addAlongSide(el->getFirstChild(), subObj, s1, 
+		       el->getChildType(elType), reverseOrder);
 	if (s2 != -1)
-	  addAlongSide(el->getSecondChild(), subObj, s2, el->getChildType(elType), reverseOrder);
+	  addAlongSide(el->getSecondChild(), subObj, s2, 
+		       el->getChildType(elType), reverseOrder);
       } else {
 	if (s2 != -1)
-	  addAlongSide(el->getSecondChild(), subObj, s2, el->getChildType(elType), reverseOrder);
+	  addAlongSide(el->getSecondChild(), subObj, s2, 
+		       el->getChildType(elType), reverseOrder);
 	if (s1 != -1) 
-	  addAlongSide(el->getFirstChild(), subObj, s1, el->getChildType(elType), reverseOrder);
+	  addAlongSide(el->getFirstChild(), subObj, s1, 
+		       el->getChildType(elType), reverseOrder);
       }
     }
   }
diff --git a/AMDiS/src/MeshStructure.h b/AMDiS/src/MeshStructure.h
index d2b18632f85101fc46dc8e642d9063b70db45cda..e9f2732d0f039f9a9e6f76ae296b5e37a6072682 100644
--- a/AMDiS/src/MeshStructure.h
+++ b/AMDiS/src/MeshStructure.h
@@ -66,10 +66,8 @@ namespace AMDiS {
       reset();
     }
 
-    /** \brief
-     * Sets all position counters, that are used to traverse the code, to the starting
-     * position. The code itself is not changed.
-     */
+    /// Sets all position counters, that are used to traverse the code, to the 
+    /// starting position. The code itself is not changed.
     void reset();
 
     /// Returns whether the code is empty or not.
diff --git a/AMDiS/src/io/ArhReader.cc b/AMDiS/src/io/ArhReader.cc
index 78bce83e91e512ae4a7f172a0d641380b01bda08..bad8fa0be1b73f0cc4464a9a460f155e09edf6cb 100644
--- a/AMDiS/src/io/ArhReader.cc
+++ b/AMDiS/src/io/ArhReader.cc
@@ -51,7 +51,6 @@ namespace AMDiS {
   {
     FUNCNAME("ArhReader::read()");
 
-#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
     if (writeParallel) {
       using boost::lexical_cast;
       int sPos = filename.find(".arh");
@@ -59,8 +58,12 @@ namespace AMDiS {
       string name = filename.substr(0, sPos);      
 
       if (nProcs == -1) {     
+#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
 	string procFilename = name + "-p" + lexical_cast<string>(MPI::COMM_WORLD.Get_rank()) + "-.arh";
 	readFile(procFilename, mesh, vecs);
+#else
+	ERROR_EXIT("Reading parallel ARH files in sequential computations requires to specify the number of nodes on which the ARH file was created!\n");
+#endif
       } else {
 	for (int i = 0; i < nProcs; i++) {
 	  string procFilename = name + "-p" + lexical_cast<string>(i) + "-.arh";
@@ -70,10 +73,6 @@ namespace AMDiS {
     } else {
       readFile(filename, mesh, vecs);
     }
-#else
-    readFile(filename, mesh, vecs);
-#endif
-
     MSG("ARH file read from: %s\n", filename.c_str());
   }
 
diff --git a/AMDiS/src/parallel/DofComm.cc b/AMDiS/src/parallel/DofComm.cc
index 28a5109140ac7480d902a56d0e6e69ec038f661f..dd812a66ff81522a993d906cc4fa8606918b8976 100644
--- a/AMDiS/src/parallel/DofComm.cc
+++ b/AMDiS/src/parallel/DofComm.cc
@@ -18,7 +18,8 @@ namespace AMDiS {
 
   void DofComm::removeEmpty()
   {
-    for (DataIter dit = data.begin(); dit != data.end(); ++dit) {
+    DataIter dit = data.begin();
+    while (dit != data.end()) {
       FeMapIter it = dit->second.begin();
       while (it != dit->second.end()) {
 	if (it->second.size() == 0) {
@@ -28,6 +29,11 @@ namespace AMDiS {
 	} else
 	  ++it;
       }
+      
+      if (dit->second.size() == 0)
+	data.erase(dit++);
+      else
+	++dit;
     }
   }
 
diff --git a/AMDiS/src/parallel/MeshDistributor.cc b/AMDiS/src/parallel/MeshDistributor.cc
index 9e8c07db801e0d00d627aeeff707fee5608982d0..d36930c12c53d4e386e9653fcca415fd9edde735 100644
--- a/AMDiS/src/parallel/MeshDistributor.cc
+++ b/AMDiS/src/parallel/MeshDistributor.cc
@@ -777,6 +777,9 @@ namespace AMDiS {
 
     double first = MPI::Wtime();
 
+    int skip = 0;
+    Parameters::get("parallel->debug->skip check mesh change", skip);
+
     // === If mesh has not been changed on all ranks, return. ===
 
     int recvAllValues = 0;
@@ -788,7 +791,8 @@ namespace AMDiS {
 
     // === At least one rank mesh has been changed, so the boundaries must be ===
     // === adapted to the new mesh structure.                                 ===
-   
+
+    if (skip == 0)
     do {
       bool meshChanged = false;
 
diff --git a/AMDiS/src/parallel/ParallelDebug.cc b/AMDiS/src/parallel/ParallelDebug.cc
index 54bf712e9e334f3d6cd107fb17d2916a6f1eec29..c0530c073747d1a91d0fc60310822bb125f2ec5c 100644
--- a/AMDiS/src/parallel/ParallelDebug.cc
+++ b/AMDiS/src/parallel/ParallelDebug.cc
@@ -785,7 +785,7 @@ namespace AMDiS {
   {
     FUNCNAME("ParallelDebug::writeCoordsFile()");
 
-    const FiniteElemSpace *feSpace = pdb.feSpaces[0];
+    const FiniteElemSpace *feSpace = pdb.feSpaces[pdb.feSpaces.size() - 1];
 
     stringstream filename;
     filename << prefix << "-" << pdb.mpiRank << "." << postfix;
diff --git a/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc b/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
index afcd156a718541e7891379d597f63aaeddf414f7..8470ad97aaefc884aa12eef56dbc4338790cd65a 100644
--- a/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
+++ b/AMDiS/src/parallel/PetscSolverGlobalMatrix.cc
@@ -431,6 +431,7 @@ namespace AMDiS {
 	    ("Should not happen!\n");
 
 	  int rowIndex = rowIt->first;
+
 	  MatSetValues(petscMatrix, 1, &rowIndex, rowIt->second.size(),
 		       &(rowIt->second[0]), &(valsMap[rowIt->first][0]), ADD_VALUES);
 	}