diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index e6cfa82d8821dcf922212257a6d536eca2063cdc..62230e78b8a86a0d0d5e0f105f2cd2a5965ba615 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -2109,13 +2109,11 @@ DynamicModel::computingPass(int derivsOrder, int paramsDerivsOrder, const eval_c
 
   // Compute derivatives w.r. to all endogenous, exogenous and exogenous deterministic
   set<int> vars;
-  for (auto &it : deriv_id_table)
-    {
-      SymbolType type = symbol_table.getType(it.first.first);
-      if (type == SymbolType::endogenous || type == SymbolType::exogenous
-          || type == SymbolType::exogenousDet)
-        vars.insert(it.second);
-    }
+  for (auto &[symb_lag, deriv_id] : deriv_id_table)
+    if (SymbolType type = symbol_table.getType(symb_lag.first);
+        type == SymbolType::endogenous || type == SymbolType::exogenous
+        || type == SymbolType::exogenousDet)
+      vars.insert(deriv_id);
 
   // Launch computations
   cout << "Computing " << modelClassName() << " derivatives (order " << derivsOrder << ")." << endl;