diff --git a/ProcessLib/NeumannBc.h b/ProcessLib/NeumannBc.h
index db6b9f83531ed7bbb8a2788d4a159438a4109bb8..ba42a3bdf9894111bba88dcde106d7f9cb22572e 100644
--- a/ProcessLib/NeumannBc.h
+++ b/ProcessLib/NeumannBc.h
@@ -101,7 +101,9 @@ public:
     void integrate(GlobalSetup const& global_setup,
                    const double t, GlobalVector& b)
     {
-        global_setup.executeDereferenced(*_global_assembler, _local_assemblers, t, b);
+        global_setup.executeMemberDereferenced(
+                    *_global_assembler, &GlobalAssembler::assemble,
+                    _local_assemblers, t, b);
     }
 
     void initialize(GlobalSetup const& global_setup,
@@ -180,16 +182,16 @@ private:
     /// the #_function.
     unsigned const _integration_order;
 
+    using LocalAssembler = LocalNeumannBcAsmDataInterface<
+        GlobalMatrix, GlobalVector>;
+
     using GlobalAssembler =
         AssemblerLib::VectorMatrixAssembler<
-            GlobalMatrix, GlobalVector,
+            GlobalMatrix, GlobalVector, LocalAssembler,
             NumLib::ODESystemTag::NeumannBC>;
 
     std::unique_ptr<GlobalAssembler> _global_assembler;
 
-    using LocalAssembler = LocalNeumannBcAsmDataInterface<
-        GlobalMatrix, GlobalVector>;
-
     /// Local assemblers for each element of #_elements.
     std::vector<std::unique_ptr<LocalAssembler>> _local_assemblers;