diff --git a/src/ComputingTasks.cc b/src/ComputingTasks.cc
index 955d5bbbc8f8f6a3d239d83536080037876382f7..c573127baae0aeab87886403b10a63a5e0aca407 100644
--- a/src/ComputingTasks.cc
+++ b/src/ComputingTasks.cc
@@ -733,56 +733,6 @@ ForecastStatement::writeJsonOutput(ostream &output) const
   output << "}";
 }
 
-DetCondForecast::DetCondForecast(SymbolList symbol_list_arg,
-                                 OptionsList options_list_arg,
-                                 const bool linear_decomposition_arg) :
-  options_list{move(options_list_arg)},
-  symbol_list{move(symbol_list_arg)},
-  linear_decomposition{linear_decomposition_arg}
-{
-
-}
-
-void
-DetCondForecast::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const
-{
-  options_list.writeOutput(output);
-  if (linear_decomposition)
-    {
-      output << "first_order_solution_to_compute = 1;" << endl
-             << "if isfield(oo_, 'dr')" << endl
-             << "    if isfield(oo_.dr, 'ghx') && isfield(oo_.dr, 'ghu') && isfield(oo_.dr, 'state_var') && isfield(oo_.dr, 'order_var')" << endl
-             << "        first_order_solution_to_compute = 0;" << endl
-             << "    end" << endl
-             << "end" << endl
-             << "if first_order_solution_to_compute" << endl
-             << "  fprintf('%s','Computing the first order solution ...');" << endl
-             << "  options_.nograph = true;" << endl
-             << "  options_.order = 1;" << endl
-             << "  options_.noprint = true;" << endl
-             << "  options_.nocorr = true;" << endl
-             << "  options_.nomoments = true;" << endl
-             << "  options_.nodecomposition = true;" << endl
-             << "  options_.nofunctions = true;" << endl
-             << "  options_.irf = 0;" << endl
-             << "  tmp_periods = options_.periods;" << endl
-             << "  options_.periods = 0;" << endl
-             << "  var_list_ = char();" << endl
-             << "  info = stoch_simul(var_list_);" << endl
-             << R"(  fprintf('%s\n','done');)" << endl
-             << "  options_.periods = tmp_periods;" << endl
-             << "end" << endl;
-    }
-  vector<string> symbols = symbol_list.get_symbols();
-  if (symbols.size() > 0)
-    output << symbols[1] << " = det_cond_forecast(";
-  for (unsigned int i = 0; i < symbols.size() - 1; i++)
-    output << symbols[i] << ", ";
-  if (symbols.size() > 0)
-    output << symbols[symbols.size() - 1];
-  output << ");" << endl;
-}
-
 RamseyModelStatement::RamseyModelStatement(OptionsList options_list_arg) :
   options_list{move(options_list_arg)}
 {
diff --git a/src/ComputingTasks.hh b/src/ComputingTasks.hh
index 09d2fef85edc0eb12f4853bcfeb2fd49729e3104..03d7da29ddaeb97ad54c9f6502cee373c577373d 100644
--- a/src/ComputingTasks.hh
+++ b/src/ComputingTasks.hh
@@ -95,19 +95,6 @@ public:
   void writeJsonOutput(ostream &output) const override;
 };
 
-class DetCondForecast : public Statement
-{
-private:
-  const OptionsList options_list;
-  const SymbolList symbol_list;
-  const bool linear_decomposition;
-public:
-  DetCondForecast(SymbolList symbol_list_arg,
-                  OptionsList options_list_arg,
-                  const bool linear_decompositiontion_arg);
-  void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const override;
-};
-
 class ModelInfoStatement : public Statement
 {
 private:
diff --git a/src/DynareBison.yy b/src/DynareBison.yy
index dc16976c25023397faab61d792db1bb636d3fb15..47106020eb2f49e739009037ca0f0f93c4b67743 100644
--- a/src/DynareBison.yy
+++ b/src/DynareBison.yy
@@ -80,7 +80,7 @@ class ParsingDriver;
 %token BVAR_REPLIC BYTECODE ALL_VALUES_REQUIRED PROPOSAL_DISTRIBUTION REALTIME VINTAGE
 %token CALIB_SMOOTHER CHANGE_TYPE CHECK CONDITIONAL_FORECAST CONDITIONAL_FORECAST_PATHS CONF_SIG CONSTANT CONTROLLED_VAREXO CORR CUTOFF CYCLE_REDUCTION LOGARITHMIC_REDUCTION
 %token COMMA CONSIDER_ALL_ENDOGENOUS CONSIDER_ONLY_OBSERVED INITIAL_CONDITION_DECOMPOSITION
-%token DATAFILE FILE SERIES DET_COND_FORECAST DOUBLING DR_CYCLE_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_MAXITER DR_ALGO DROP DSAMPLE DYNASAVE DYNATYPE CALIBRATION DIFFERENTIATE_FORWARD_VARS
+%token DATAFILE FILE SERIES DOUBLING DR_CYCLE_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_MAXITER DR_ALGO DROP DSAMPLE DYNASAVE DYNATYPE CALIBRATION DIFFERENTIATE_FORWARD_VARS
 %token END ENDVAL EQUAL ESTIMATION ESTIMATED_PARAMS ESTIMATED_PARAMS_BOUNDS ESTIMATED_PARAMS_INIT EXTENDED_PATH ENDOGENOUS_PRIOR EXPRESSION
 %token FILENAME DIRNAME FILTER_STEP_AHEAD FILTERED_VARS FIRST_OBS LAST_OBS SET_TIME OSR_PARAMS_BOUNDS KEEP_KALMAN_ALGO_IF_SINGULARITY_IS_DETECTED
 %token <string> FLOAT_NUMBER DATES
@@ -310,7 +310,6 @@ statement : parameters
           | smm_estimation
           | shock_groups
           | init2shocks
-          | det_cond_forecast
           | var_expectation_model
           | compilation_setup
           ;
@@ -1436,16 +1435,6 @@ prior_posterior_function_options : o_function
                                  | o_sampling_draws
                                  ;
 
-det_cond_forecast : DET_COND_FORECAST '(' symbol ')' ';'
-                    { driver.det_cond_forecast_linear_decomposition($3); }
-                  | DET_COND_FORECAST '(' symbol COMMA symbol ')' ';'
-                    { driver.det_cond_forecast_linear_decomposition($3,$5); }
-                  | DET_COND_FORECAST '(' symbol COMMA simul_options_list ')' ';'
-                    { driver.det_cond_forecast_linear_decomposition($3); }
-                  | DET_COND_FORECAST '(' symbol COMMA symbol COMMA simul_options_list ')' ';'
-                    { driver.det_cond_forecast_linear_decomposition($3,$5); }
-                  ;
-
 simul : SIMUL ';'
         { driver.simul(); }
       | SIMUL '(' simul_options_list ')' ';'
diff --git a/src/DynareFlex.ll b/src/DynareFlex.ll
index 7cc2b6cd89a27269fc35ca286f32ef92137f71eb..7b0d27c7f5616aeb06e2ac55d9d366cd1d7f2b98 100644
--- a/src/DynareFlex.ll
+++ b/src/DynareFlex.ll
@@ -187,7 +187,6 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4]|w([1-9]{1}|[1-4][0-9]|5[0-2]))
 <INITIAL>smoother2histval {BEGIN DYNARE_STATEMENT; return token::SMOOTHER2HISTVAL;}
 <INITIAL>perfect_foresight_setup {BEGIN DYNARE_STATEMENT; return token::PERFECT_FORESIGHT_SETUP;}
 <INITIAL>perfect_foresight_solver {BEGIN DYNARE_STATEMENT; return token::PERFECT_FORESIGHT_SOLVER;}
-<INITIAL>det_cond_forecast {BEGIN DYNARE_STATEMENT; return token::DET_COND_FORECAST;}
 <INITIAL>compilation_setup {BEGIN DYNARE_STATEMENT; return token::COMPILATION_SETUP;}
 
 <DYNARE_STATEMENT>; {
diff --git a/src/ParsingDriver.cc b/src/ParsingDriver.cc
index 98a8192f1bc411f60636d5eafe30558764922bb9..c2d17d76b6a39ba6d338d203cc3e6227172fb629 100644
--- a/src/ParsingDriver.cc
+++ b/src/ParsingDriver.cc
@@ -2446,27 +2446,6 @@ ParsingDriver::conditional_forecast_paths()
   det_shocks.clear();
 }
 
-void
-ParsingDriver::det_cond_forecast_linear_decomposition(const string &plan)
-{
-  symbol_list.clear();
-  symbol_list.addSymbol(plan);
-  mod_file->addStatement(make_unique<DetCondForecast>(symbol_list, options_list, mod_file->linear_decomposition));
-  symbol_list.clear();
-  options_list.clear();
-}
-
-void
-ParsingDriver::det_cond_forecast_linear_decomposition(const string &plan, const string &dset)
-{
-  symbol_list.clear();
-  symbol_list.addSymbol(plan);
-  symbol_list.addSymbol(dset);
-  mod_file->addStatement(make_unique<DetCondForecast>(symbol_list, options_list, mod_file->linear_decomposition));
-  symbol_list.clear();
-  options_list.clear();
-}
-
 void
 ParsingDriver::calib_smoother()
 {
diff --git a/src/ParsingDriver.hh b/src/ParsingDriver.hh
index 32eee6ff74f7eb7550dda6a2e3661bbfcdaa22d3..95f5334f80f7a7845108f13c7d4b41d103a8987a 100644
--- a/src/ParsingDriver.hh
+++ b/src/ParsingDriver.hh
@@ -716,9 +716,6 @@ public:
   void conditional_forecast_paths();
   //! Plot conditional forecast statement
   void plot_conditional_forecast(const string &periods = "");
-  //! Deterministic conditional forecast statement
-  void det_cond_forecast_linear_decomposition(const string &plan);
-  void det_cond_forecast_linear_decomposition(const string &plan, const string &dset);
   //! Smoother on calibrated models
   void calib_smoother();
   //! Extended path