diff --git a/FileIO/MPI_IO/NodePartitionedMeshReader.cpp b/FileIO/MPI_IO/NodePartitionedMeshReader.cpp
index 34b290a2ed81f702ae6d454b47b19ad412c14a97..bfd21575aae6c5eea30ae994fe4c2653f5c90719 100644
--- a/FileIO/MPI_IO/NodePartitionedMeshReader.cpp
+++ b/FileIO/MPI_IO/NodePartitionedMeshReader.cpp
@@ -435,16 +435,16 @@ void NodePartitionedMeshReader::readElementASCII(std::ifstream &ins,
     // Set number of elements.
     unsigned long const ne =
         ghost ? _mesh_info.ghost_elements : _mesh_info.regular_elements;
-    unsigned long counter = ne;
+    unsigned long id_offset_elem = ne;
     for(unsigned long j = 0; j < ne; j++)
     {
-        elem_data[j] = counter;
-        ins >> elem_data[counter++];  //mat. idx
-        ins >> elem_data[counter++];  //type
-        ins >> elem_data[counter];  //nnodes
-        unsigned long const nn_e =  elem_data[counter++];
+        elem_data[j] = id_offset_elem;
+        ins >> elem_data[id_offset_elem++];  //mat. idx
+        ins >> elem_data[id_offset_elem++];  //type
+        ins >> elem_data[id_offset_elem];  //nnodes
+        unsigned long const nn_e =  elem_data[id_offset_elem++];
         for(unsigned long k = 0; k < nn_e; k++)
-            ins >> elem_data[counter++];
+            ins >> elem_data[id_offset_elem++];
     }
 }
 
@@ -471,51 +471,47 @@ void NodePartitionedMeshReader::setElements(
     // Number of elements, ether ghost or regular
     unsigned long const ne =
         ghost ? _mesh_info.ghost_elements : _mesh_info.regular_elements;
-    unsigned long const id_offset =
+    unsigned long const id_offset_ghost =
         ghost ? _mesh_info.regular_elements : 0;
 
     for(unsigned long i = 0; i < ne; i++)
     {
-        unsigned long counter = elem_data[i];
+        unsigned long id_offset_elem = elem_data[i];
 
-        const unsigned mat_idx = static_cast<unsigned>( elem_data[counter++] );
-        const unsigned long e_type = elem_data[counter++];
-        unsigned long const nnodes = elem_data[counter++];
+        const unsigned mat_idx = static_cast<unsigned>( elem_data[id_offset_elem++] );
+        const unsigned long e_type = elem_data[id_offset_elem++];
+        unsigned long const nnodes = elem_data[id_offset_elem++];
 
         MeshLib::Node** elem_nodes = new MeshLib::Node*[nnodes];
         for(unsigned long k = 0; k < nnodes; k++)
-            elem_nodes[k] = mesh_nodes[ elem_data[counter++] ];
-
-        MeshLib::Element* elem = nullptr;
+            elem_nodes[k] = mesh_nodes[ elem_data[id_offset_elem++] ];
 
         // The element types below are defined by the mesh_partition tool
         // available at https://github.com/ufz/mesh_partition .
         switch(e_type)
         {
         case 1:
-            elem = new MeshLib::Line(elem_nodes, mat_idx);
+            mesh_elems[i + id_offset_ghost] = new MeshLib::Line(elem_nodes, mat_idx);
             break;
         case 2:
-            elem = new MeshLib::Quad(elem_nodes, mat_idx);
+            mesh_elems[i + id_offset_ghost] = new MeshLib::Quad(elem_nodes, mat_idx);
             break;
         case 3:
-            elem = new MeshLib::Hex(elem_nodes, mat_idx);
+            mesh_elems[i + id_offset_ghost] = new MeshLib::Hex(elem_nodes, mat_idx);
             break;
         case 4:
-            elem = new MeshLib::Tri(elem_nodes, mat_idx);
+            mesh_elems[i + id_offset_ghost] = new MeshLib::Tri(elem_nodes, mat_idx);
             break;
         case 5:
-            elem = new MeshLib::Tet(elem_nodes, mat_idx);
+            mesh_elems[i + id_offset_ghost] = new MeshLib::Tet(elem_nodes, mat_idx);
             break;
         case 6:
-            elem = new MeshLib::Prism(elem_nodes, mat_idx);
+            mesh_elems[i + id_offset_ghost] = new MeshLib::Prism(elem_nodes, mat_idx);
             break;
         case 7:
-            elem = new MeshLib::Pyramid(elem_nodes, mat_idx);
+            mesh_elems[i + id_offset_ghost] = new MeshLib::Pyramid(elem_nodes, mat_idx);
             break;
         }
-
-        mesh_elems[i + id_offset] = elem;
     }
 }
 }   // namespace FileIO