diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index fe6bdda85a941a25352afd1450a87469aec9e274..459810deb02f3d557329ff4a8e873536a137c473 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -2879,7 +2879,7 @@ DynamicModel::computeDynJacobianCols()
   for (const auto &[symb_lag, deriv_id] : deriv_id_table)
     {
       int symb_id{symb_lag.first};
-      int tsid{symbol_table.getTypeSpecificID(symb_id)};
+      int tsid{symbol_table.getTypeSpecificID(symb_id)}; // At this point, there is no trend_var
       if (SymbolType type{symbol_table.getType(symb_id)};
           type == SymbolType::exogenous)
         dyn_jacobian_cols_table[deriv_id] = ordered_dyn_endo.size() + tsid;
diff --git a/src/ParsingDriver.cc b/src/ParsingDriver.cc
index 0ca6faff9e151db1d72cc8ef284a0909331c8ef7..83192410a2b9529d68b298a659725c4a35b2c39b 100644
--- a/src/ParsingDriver.cc
+++ b/src/ParsingDriver.cc
@@ -272,6 +272,10 @@ ParsingDriver::set_planner_discount_latex_name(string tex_name)
 void
 ParsingDriver::end_trend_var(bool log_trend, expr_t growth_factor, const vector<pair<string, string>> &symbol_list)
 {
+  /* Run detrending engine if trend variables are present, even if unused in
+     a var(deflator=…) statement (see #113). */
+  mod_file->nonstationary_variables = true;
+
   vector<int> declared_trend_vars;
   for (auto &[name, tex_name] : symbol_list)
     {