diff --git a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h
index e726ab7f5e0208dd367119593255525a9e6285b4..827e01ba96b7ac2586ab7142bb12590c9f91155d 100644
--- a/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h
+++ b/ProcessLib/BoundaryCondition/BoundaryConditionCollection.h
@@ -29,7 +29,8 @@ public:
     std::vector<NumLib::IndexValueVector<GlobalIndexType>> const*
     getKnownSolutions(double const t) const
     {
-        for (std::size_t i=0; i<_boundary_conditions.size(); ++i) {
+        auto const n_bcs = _boundary_conditions.size();
+        for (std::size_t i=0; i<n_bcs; ++i) {
             auto const& bc = *_boundary_conditions[i];
             auto& dirichlet_storage = _dirichlet_bcs[i];
             bc.getEssentialBCValues(t, dirichlet_storage);