diff --git a/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp b/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp
index e5a5e8538d924a0e58570c9fd97a3f90c2ed368b..2818224b1e3b588486f4f3185e7da7fe96a1204a 100644
--- a/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp
+++ b/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp
@@ -100,11 +100,11 @@ std::ostream& Partition::writeConfig(std::ostream& os) const
     return os.write(reinterpret_cast<const char*>(data), sizeof(data));
 }
 
-std::size_t partitionLookup(MeshLib::Node const& node,
+std::size_t partitionLookup(std::size_t const& node_id,
                             std::vector<std::size_t> const& partition_ids,
                             std::vector<std::size_t> const& node_id_mapping)
 {
-    return partition_ids[node_id_mapping[node.getID()]];
+    return partition_ids[node_id_mapping[node_id]];
 }
 
 std::pair<std::vector<MeshLib::Node*>, std::vector<MeshLib::Node*>>
@@ -148,9 +148,10 @@ findRegularNodesInPartition(std::size_t const part_id,
     // Find nodes belonging to a given partition id.
     std::vector<MeshLib::Node*> partition_nodes;
     copy_if(begin(nodes), end(nodes), std::back_inserter(partition_nodes),
-            [&](auto const& n) {
-                return partitionLookup(*n, partition_ids, node_id_mapping) ==
-                       part_id;
+            [&](auto const& n)
+            {
+                return partitionLookup(n->getID(), partition_ids,
+                                       node_id_mapping) == part_id;
             });
 
     return splitIntoBaseAndHigherOrderNodes(partition_nodes, mesh);
@@ -177,22 +178,24 @@ findGhostNodesInPartition(
         for (unsigned i = 0; i < ghost_elem->getNumberOfNodes(); i++)
         {
             auto const& n = ghost_elem->getNode(i);
-            if (is_ghost_node[n->getID()])
+            auto const node_id = n->getID();
+            if (is_ghost_node[node_id])
             {
                 continue;
             }
 
-            if (partitionLookup(*n, partition_ids, node_id_mapping) != part_id)
+            if (partitionLookup(node_id, partition_ids, node_id_mapping) !=
+                part_id)
             {
                 if (isBaseNode(*n, mesh.getElementsConnectedToNode(*n)))
                 {
-                    base_ghost_nodes.push_back(nodes[n->getID()]);
+                    base_ghost_nodes.push_back(nodes[node_id]);
                 }
                 else
                 {
-                    higher_order_ghost_nodes.push_back(nodes[n->getID()]);
+                    higher_order_ghost_nodes.push_back(nodes[node_id]);
                 }
-                is_ghost_node[n->getID()] = true;
+                is_ghost_node[node_id] = true;
             }
         }
     }