diff --git a/ProcessLib/GroundwaterFlowProcess.h b/ProcessLib/GroundwaterFlowProcess.h
index 645e80ddb63d0e6c192c815349ce8e5834373af4..5de50aeef3f4076472c8705e0e210175cdf3b90f 100644
--- a/ProcessLib/GroundwaterFlowProcess.h
+++ b/ProcessLib/GroundwaterFlowProcess.h
@@ -193,6 +193,9 @@ public:
 
     ~GroundwaterFlowProcess()
     {
+        for (auto p : _neumann_bcs)
+            delete p;
+
         for (auto p : _local_assemblers)
             delete p;
 
diff --git a/ProcessLib/NeumannBc.h b/ProcessLib/NeumannBc.h
index f60e84e68d1042fedd63c1cfc4297774d7786216..1e2bc674b4d57372d7ca10c67caf45057e277769 100644
--- a/ProcessLib/NeumannBc.h
+++ b/ProcessLib/NeumannBc.h
@@ -77,6 +77,11 @@ public:
 
     ~NeumannBc()
     {
+        for (auto p : _all_mesh_subsets)
+            delete p;
+
+        delete _mesh_subset_all_nodes;
+
         for (auto e : _elements)
             delete e;