diff --git a/matlab/dynare_estimation_init.m b/matlab/dynare_estimation_init.m
index 5751f6730fc8366120bdfb6fba6090a49c52fc5d..4d44649c67f32d19160685df6e22f2cfaf28dc3a 100644
--- a/matlab/dynare_estimation_init.m
+++ b/matlab/dynare_estimation_init.m
@@ -276,39 +276,6 @@ else
                                              bayestopt_.smoother_var_list);
 end;
 
-
-% Initialization with unit-root variables.
-if ~isempty(options_.unit_root_vars)
-    n_ur = size(options_.unit_root_vars,1);
-    i_ur = zeros(n_ur,1);
-    for i=1:n_ur
-        i1 = strmatch(deblank(options_.unit_root_vars(i,:)),M_.endo_names(dr.order_var,:),'exact');
-        if isempty(i1)
-            error('Undeclared variable in unit_root_vars statement')
-        end
-        i_ur(i) = i1;
-    end
-    bayestopt_.var_list_stationary = setdiff((1:M_.endo_nbr)',i_ur);
-    [junk,bayestopt_.restrict_var_list_nonstationary] = ...
-        intersect(oo_.dr.restrict_var_list,i_ur);
-    bayestopt_.restrict_var_list_stationary = ...
-        setdiff((1:length(oo_.dr.restrict_var_list))', ...
-                bayestopt_.restrict_var_list_nonstationary);
-    if M_.maximum_lag > 1
-        l1 = flipud([cumsum(M_.lead_lag_incidence(1:M_.maximum_lag-1,dr.order_var),1);ones(1,M_.endo_nbr)]);
-        l2 = l1(:,oo_.dr.restrict_var_list);
-        il2 = find(l2' > 0);
-        l2(il2) = (1:length(il2))';
-        bayestopt_.restrict_var_list_stationary = ...
-            nonzeros(l2(:,bayestopt_.restrict_var_list_stationary));
-        bayestopt_.restrict_var_list_nonstationary = ...
-            nonzeros(l2(:,bayestopt_.restrict_var_list_nonstationary));
-    end
-    if options_.lik_init==1
-        options_.lik_init = 3;
-    end
-end % if ~isempty(options_.unit_root_vars)
-
 % Test if the data file is declared.
 if isempty(options_.datafile)
     if gsa_flag
diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m
index 740a519e9300a1151b44d56378e53a555fbd1c0c..fb8e82d8979c11264bbfc15b9b6c2ec614c8b75e 100644
--- a/matlab/global_initialization.m
+++ b/matlab/global_initialization.m
@@ -189,7 +189,6 @@ options_.prior_trunc = 1e-10;
 options_.smoother = 0;
 options_.student_degrees_of_freedom = 3;
 options_.subdraws = [];
-options_.unit_root_vars = [];
 options_.use_mh_covariance_matrix = 0;
 options_.gradient_method = 2;
 options_.gradient_epsilon = 1e-6;
diff --git a/matlab/set_stationary_variables_list.m b/matlab/set_stationary_variables_list.m
index e535c934a154154e9158e8804675460650cba761..33b44724282b6d134ea439a2e371a22ea012621c 100644
--- a/matlab/set_stationary_variables_list.m
+++ b/matlab/set_stationary_variables_list.m
@@ -17,7 +17,7 @@ function [ivar,vartan,options_] = set_stationary_variables_list(options_,M_)
 % SPECIAL REQUIREMENTS
 %   None.
 
-% Copyright (C) 2007-2010 Dynare Team
+% Copyright (C) 2007-2011 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -40,20 +40,7 @@ if isempty(varlist)
     options_.varlist = varlist;
 end
 nvar = rows(varlist);
-if ~isempty(options_.unit_root_vars)
-    vartan = [];
-    for i=1:nvar
-        if isempty(strmatch(deblank(varlist(i,:)),options_.unit_root_vars,'exact'))       
-            if isempty(vartan)
-                vartan = varlist(i,:);
-            else
-                vartan = char(vartan,varlist(i,:));
-            end
-        end
-    end
-else
-    vartan = varlist;
-end
+vartan = varlist;
 nvar = size(vartan,1);
 ivar = zeros(nvar,1);
 for i = 1:nvar
diff --git a/preprocessor/ComputingTasks.cc b/preprocessor/ComputingTasks.cc
index 0c4f7ebc3ddd7f01e7a8e8c3367864d418a95b8b..720b57c27a63d144341b0ad3d107a67325eb3dbc 100644
--- a/preprocessor/ComputingTasks.cc
+++ b/preprocessor/ComputingTasks.cc
@@ -371,17 +371,6 @@ RplotStatement::writeOutput(ostream &output, const string &basename) const
   output << "rplot(var_list_);\n";
 }
 
-UnitRootVarsStatement::UnitRootVarsStatement(const SymbolList &symbol_list_arg) :
-  symbol_list(symbol_list_arg)
-{
-}
-
-void
-UnitRootVarsStatement::writeOutput(ostream &output, const string &basename) const
-{
-  symbol_list.writeOutput("options_.unit_root_vars", output);
-}
-
 PeriodsStatement::PeriodsStatement(int periods_arg) : periods(periods_arg)
 {
 }
diff --git a/preprocessor/ComputingTasks.hh b/preprocessor/ComputingTasks.hh
index a018781b301f1afa99adb8e6234c209caf1c74a0..3f66bd03b44b5cb93e6b6dc7aa6a61d34580d060 100644
--- a/preprocessor/ComputingTasks.hh
+++ b/preprocessor/ComputingTasks.hh
@@ -126,15 +126,6 @@ public:
   virtual void writeOutput(ostream &output, const string &basename) const;
 };
 
-class UnitRootVarsStatement : public Statement
-{
-private:
-  const SymbolList symbol_list;
-public:
-  UnitRootVarsStatement(const SymbolList &symbol_list_arg);
-  virtual void writeOutput(ostream &output, const string &basename) const;
-};
-
 class PeriodsStatement : public Statement
 {
 private:
diff --git a/preprocessor/ParsingDriver.cc b/preprocessor/ParsingDriver.cc
index 317fefd2455b7bb601cea5f571da4d33d546d143..50e05d82c9ded8c31280012571fdf59e9e7750eb 100644
--- a/preprocessor/ParsingDriver.cc
+++ b/preprocessor/ParsingDriver.cc
@@ -1163,7 +1163,7 @@ ParsingDriver::estimated_params_bounds()
 void
 ParsingDriver::set_unit_root_vars()
 {
-  mod_file->addStatement(new UnitRootVarsStatement(symbol_list));
+  warning("'unit_root_vars' is now obsolete and has no effect; use option 'diffuse_filter' of 'estimation' instead");
   symbol_list.clear();
 }