diff --git a/ProcessLib/GroundwaterFlowProcess.h b/ProcessLib/GroundwaterFlowProcess.h
index 5eae3155390976389042080038bf8723509b6f92..8922c403749b30c7d699712ef268c80451100089 100644
--- a/ProcessLib/GroundwaterFlowProcess.h
+++ b/ProcessLib/GroundwaterFlowProcess.h
@@ -193,9 +193,7 @@ public:
                     *_mesh_subset_all_nodes);
         }
 
-        for (auto bc : _neumann_bcs)
-            bc->initialize(this->_global_setup, *(this->_A), *(this->_rhs),
-                           this->_mesh.getDimension());
+        Process<GlobalSetup>::initializeNeumannBcs(_neumann_bcs);
     }
 
     void initializeMeshSubsets(MeshLib::Mesh const& mesh) override
diff --git a/ProcessLib/Process.h b/ProcessLib/Process.h
index afb68da27a8dcb560a770d377866d089778be085..4f35c0b665e200c28742075488b90e43a1dc0e59 100644
--- a/ProcessLib/Process.h
+++ b/ProcessLib/Process.h
@@ -80,6 +80,12 @@ public:
 		init();  // Execute proces specific initialization.
 	}
 
+	void initializeNeumannBcs(std::vector<NeumannBc<GlobalSetup>*> const& bcs)
+	{
+		for (auto bc : bcs)
+			bc->initialize(_global_setup, *_A, *_rhs, _mesh.getDimension());
+	}
+
 	bool solve(const double delta_t)
 	{
 		_A->setZero();