diff --git a/ProcessLib/ProcessVariable.cpp b/ProcessLib/ProcessVariable.cpp
index 93474a224f8c1238941233ec4bb69fb3ee696933..48d45cd23714ee5b1fe49743e6610847ae032155 100644
--- a/ProcessLib/ProcessVariable.cpp
+++ b/ProcessLib/ProcessVariable.cpp
@@ -165,11 +165,15 @@ ProcessVariable::createBoundaryConditions(
     std::vector<std::unique_ptr<ParameterBase>> const& parameters)
 {
     std::vector<std::unique_ptr<BoundaryCondition>> bcs;
+    bcs.reserve(_bc_configs.size());
 
     for (auto& config : _bc_configs)
-        bcs.emplace_back(_bc_builder->createBoundaryCondition(
+    {
+        auto bc = _bc_builder->createBoundaryCondition(
             config, dof_table, _mesh, variable_id, integration_order,
-            _shapefunction_order, parameters));
+            _shapefunction_order, parameters);
+        bcs.push_back(std::move(bc));
+    }
 
     return bcs;
 }