diff --git a/MeshLib/Elements/EdgeReturn.cpp b/MeshLib/Elements/EdgeReturn.cpp
index 350aad519ec23b7a3e44be300fecbd55eda55f7f..c5f34f7aa70d0c67b70342ea46cc5bbd2386b9c8 100644
--- a/MeshLib/Elements/EdgeReturn.cpp
+++ b/MeshLib/Elements/EdgeReturn.cpp
@@ -25,7 +25,7 @@ const Element* LinearEdgeReturn::getEdge(const Element* e, unsigned i)
         auto** nodes = new Node*[2];
         nodes[0] = const_cast<Node*>(e->getEdgeNode(i,0));
         nodes[1] = const_cast<Node*>(e->getEdgeNode(i,1));
-        return new Line(nodes);
+        return new Line(nodes, e->getID());
     }
     ERR("Error in MeshLib::Element::getEdge() - Index does not exist.");
     return nullptr;
@@ -39,7 +39,7 @@ const Element* QuadraticEdgeReturn::getEdge(const Element* e, unsigned i)
         nodes[0] = const_cast<Node*>(e->getEdgeNode(i,0));
         nodes[1] = const_cast<Node*>(e->getEdgeNode(i,1));
         nodes[2] = const_cast<Node*>(e->getEdgeNode(i,2));
-        return new Line3(nodes);
+        return new Line3(nodes, e->getID());
     }
     ERR("Error in MeshLib::Element::getEdge() - Index does not exist.");
     return nullptr;
diff --git a/MeshLib/Elements/HexRule20.cpp b/MeshLib/Elements/HexRule20.cpp
index 6d546930be5057e5c9095a28b70496e861e11288..3e00b96b897e8896821c325ad762faa4b56c4911 100644
--- a/MeshLib/Elements/HexRule20.cpp
+++ b/MeshLib/Elements/HexRule20.cpp
@@ -50,7 +50,7 @@ const Element* HexRule20::getFace(const Element* e, unsigned i)
         std::array<Node*, 8> nodes;
         for (unsigned j=0; j<8; j++)
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
-        return new Quad8(nodes);
+        return new Quad8(nodes, e->getID());
     }
     ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
     return nullptr;
diff --git a/MeshLib/Elements/HexRule8.cpp b/MeshLib/Elements/HexRule8.cpp
index 51ae299f698176d249853228c7584e4129c15562..03fc86b6fbc4473d7dd4da7636f251b5509376c3 100644
--- a/MeshLib/Elements/HexRule8.cpp
+++ b/MeshLib/Elements/HexRule8.cpp
@@ -54,7 +54,7 @@ const Element* HexRule8::getFace(const Element* e, unsigned i)
         std::array<Node*, 4> nodes;
         for (unsigned j=0; j<4; j++)
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
-        return new Quad(nodes);
+        return new Quad(nodes, e->getID());
     }
     ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
     return nullptr;
diff --git a/MeshLib/Elements/PrismRule15.cpp b/MeshLib/Elements/PrismRule15.cpp
index 81f2c6892cd962772b17c41a697e3a2439649499..88c25ecd48f22c7ea853493d2b1f3778fa580317 100644
--- a/MeshLib/Elements/PrismRule15.cpp
+++ b/MeshLib/Elements/PrismRule15.cpp
@@ -51,7 +51,7 @@ const Element* PrismRule15::getFace(const Element* e, unsigned i)
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
 
         if (i == 0 || i == 4)
-            return new Tri6(nodes);
+            return new Tri6(nodes, e->getID());
 
         return new Quad8(nodes);
     }
diff --git a/MeshLib/Elements/PrismRule6.cpp b/MeshLib/Elements/PrismRule6.cpp
index 4389307bd67b1b546a9488d3cfc8c746c4880f0e..726aed3cd0360cf4813afb9a18f5b4356723dc62 100644
--- a/MeshLib/Elements/PrismRule6.cpp
+++ b/MeshLib/Elements/PrismRule6.cpp
@@ -53,7 +53,7 @@ const Element* PrismRule6::getFace(const Element* e, unsigned i)
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
 
         if (i == 0 || i == 4)
-            return new Tri(nodes);
+            return new Tri(nodes, e->getID());
 
         return new Quad(nodes);
     }
diff --git a/MeshLib/Elements/PyramidRule13.cpp b/MeshLib/Elements/PyramidRule13.cpp
index 721c37d504c4127480f7df9366566d219d60bfde..5842f84e0b2830cb4d12f2e6dc1e25089d206161 100644
--- a/MeshLib/Elements/PyramidRule13.cpp
+++ b/MeshLib/Elements/PyramidRule13.cpp
@@ -50,9 +50,9 @@ const Element* PyramidRule13::getFace(const Element* e, unsigned i)
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
 
         if (i < 4)
-            return new Tri6(nodes);
+            return new Tri6(nodes, e->getID());
 
-        return new Quad8(nodes);
+        return new Quad8(nodes, e->getID());
     }
     ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
     return nullptr;
diff --git a/MeshLib/Elements/PyramidRule5.cpp b/MeshLib/Elements/PyramidRule5.cpp
index ef9c4be025606c2051e206b6f7b25c34f6f21444..2ce5d7caa98e2f5a4ad149c8d1dd1624ae9dc162 100644
--- a/MeshLib/Elements/PyramidRule5.cpp
+++ b/MeshLib/Elements/PyramidRule5.cpp
@@ -52,9 +52,9 @@ const Element* PyramidRule5::getFace(const Element* e, unsigned i)
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
 
         if (i < 4)
-            return new Tri(nodes);
+            return new Tri(nodes, e->getID());
 
-        return new Quad(nodes);
+        return new Quad(nodes, e->getID());
     }
     ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
     return nullptr;
diff --git a/MeshLib/Elements/TetRule10.cpp b/MeshLib/Elements/TetRule10.cpp
index d951a72ead8742d19ce7e427324333b0b275e6ee..7fb95daae33949769ccbb36cbe031145d8c57fd2 100644
--- a/MeshLib/Elements/TetRule10.cpp
+++ b/MeshLib/Elements/TetRule10.cpp
@@ -44,7 +44,7 @@ const Element* TetRule10::getFace(const Element* e, unsigned i)
         std::array<Node*,6> nodes;
         for (unsigned j=0; j<6; j++)
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
-        return new Tri6(nodes);
+        return new Tri6(nodes, e->getID());
     }
     ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
     return nullptr;
diff --git a/MeshLib/Elements/TetRule4.cpp b/MeshLib/Elements/TetRule4.cpp
index ad6ef7b281136246170168ace47c6eaef4cd6163..893781cb739fc8b03e6f995ff20103f6af5a7b3d 100644
--- a/MeshLib/Elements/TetRule4.cpp
+++ b/MeshLib/Elements/TetRule4.cpp
@@ -46,7 +46,7 @@ const Element* TetRule4::getFace(const Element* e, unsigned i)
         std::array<Node*,3> nodes;
         for (unsigned j=0; j<3; j++)
             nodes[j] = const_cast<Node*>(e->getNode(face_nodes[i][j]));
-        return new Tri(nodes);
+        return new Tri(nodes, e->getID());
     }
     ERR("Error in MeshLib::Element::getFace() - Index %d does not exist.", i);
     return nullptr;