diff --git a/matlab/resol.m b/matlab/resol.m
index d24795f5e1e3161a9bab66e1b2b81cbd3acd3231..030141df222cd620e011ae546b68ad770b0b756b 100644
--- a/matlab/resol.m
+++ b/matlab/resol.m
@@ -51,7 +51,24 @@ function [dr, info, M, options, oo] = resol(check_flag, M, options, oo)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 if isfield(oo,'dr')
-    dr = oo.dr;
+    if isfield(oo.dr,'kstate')
+        dr.kstate = oo.dr.kstate;
+    end
+    if isfield(oo.dr,'inv_order_var')
+        dr.inv_order_var = oo.dr.inv_order_var;
+    end
+    if isfield(oo.dr,'order_var')
+        dr.order_var = oo.dr.order_var;
+    end
+    if isfield(oo.dr,'restrict_var_list')
+        dr.restrict_var_list = oo.dr.restrict_var_list;
+    end
+    if isfield(oo.dr,'restrict_columns')
+        dr.restrict_columns = oo.dr.restrict_columns;
+    end
+    if isfield(oo.dr,'obs_var')
+        dr.obs_var = oo.dr.obs_var;
+    end
 end
 
 if M.exo_nbr == 0