diff --git a/doc/dynare.texi b/doc/dynare.texi
index 2b143dd92ad22fcc85a44320b0dab7ebb416f6d0..3ce0fb5f8025779b645ccc1c11374bd4f3f595d8 100644
--- a/doc/dynare.texi
+++ b/doc/dynare.texi
@@ -747,6 +747,9 @@ computations.
 Activate the @code{nograph} option (@xref{nograph}), so that Dynare will not produce any
 graph
 
+@item nointeractive
+Instructs Dynare to not request user input
+
 @item cygwin
 Tells Dynare that your MATLAB is configured for compiling MEX files with
 Cygwin (@pxref{Software requirements}). This option is only available
diff --git a/matlab/check_list_of_variables.m b/matlab/check_list_of_variables.m
index 4b1b693847c2fcdeead8292ad98e604472ab4cca..75d83f7dc110ca887964d4577e46087f94cf807b 100644
--- a/matlab/check_list_of_variables.m
+++ b/matlab/check_list_of_variables.m
@@ -93,30 +93,35 @@ if isempty(varlist)
         string = [ cas , ' will be computed for the ' num2str(M_.endo_nbr)  ' endogenous variables'];
         string = [ string ' of your model, this can be very long....']; 
         format_text(string, 10)
-        choice = [];
-        while isempty(choice)
-            disp(' ')
-            disp(' ')
-            disp('Choose one of the following options:')
-            disp(' ')
-            disp(' [1] Consider all the endogenous variables.')
-            disp(' [2] Consider all the observed endogenous variables.')
-            disp(' [3] Stop Dynare and change the mod file.')
-            disp(' ')
-            choice = input('options [default is 1] =  ');
-            if isempty(choice)
-                choice=1;
-            end
-            if choice==1
-                varlist = M_.endo_names(1:M_.orig_endo_nbr, :);
-            elseif choice==2
-                varlist = options_.varobs;
-            elseif choice==3
-                varlist = NaN;
-            else
-                disp('')
-                disp('YOU HAVE TO ANSWER 1, 2 or 3!')
-                disp('')
+        if options_.nointeractive
+            % Default behaviour is to consider all the endogenous variables.
+            varlist = M_.endo_names(1:M_.orig_endo_nbr, :);
+        else
+            choice = [];
+            while isempty(choice)
+                disp(' ')
+                disp(' ')
+                disp('Choose one of the following options:')
+                disp(' ')
+                disp(' [1] Consider all the endogenous variables.')
+                disp(' [2] Consider all the observed endogenous variables.')
+                disp(' [3] Stop Dynare and change the mod file.')
+                disp(' ')
+                choice = input('options [default is 1] =  ');
+                if isempty(choice)
+                    choice=1;
+                end
+                if choice==1
+                    varlist = M_.endo_names(1:M_.orig_endo_nbr, :);
+                elseif choice==2
+                    varlist = options_.varobs;
+                elseif choice==3
+                    varlist = NaN;
+                else
+                    disp('')
+                    disp('YOU HAVE TO ANSWER 1, 2 or 3!')
+                    disp('')
+                end
             end
         end
     end
diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m
index 3b497efb24ce041ee659f3690b12bf8ace1d28c2..dae49c300ed0c2adfa7acf864dbb4386c890e8f9 100644
--- a/matlab/global_initialization.m
+++ b/matlab/global_initialization.m
@@ -107,6 +107,9 @@ gmhmaxlik.nclimb = 200000;
 gmhmaxlik.nscale = 200000;
 options_.gmhmaxlik = gmhmaxlik;
 
+% Request user input.
+options_.nointeractive = 0;
+
 % Graphics
 options_.graphics.nrows = 3;
 options_.graphics.ncols = 3;
diff --git a/matlab/metropolis_hastings_initialization.m b/matlab/metropolis_hastings_initialization.m
index 3e75c78da97d5d266d8aa9de58d306f008a309d1..e42407b24ce85f27fc9d5090478956918df36bba 100644
--- a/matlab/metropolis_hastings_initialization.m
+++ b/matlab/metropolis_hastings_initialization.m
@@ -127,9 +127,15 @@ if ~options_.load_mh_file && ~options_.mh_recover
                 init_iter = init_iter + 1;
                 if init_iter > 100 && validate == 0
                     disp(['MH: I couldn''t get a valid initial value in 100 trials.'])
-                    disp(['MH: You should Reduce mh_init_scale...'])
-                    disp(sprintf('MH: Parameter mh_init_scale is equal to %f.',options_.mh_init_scale))
-                    options_.mh_init_scale = input('MH: Enter a new value...  ');
+                    if options_.nointeractive
+                        disp(['MH: I reduce mh_init_scale by ten percent:'])
+                        options_.mh_init_scale = .9*options_.mh_init_scale;
+                        disp(sprintf('MH: Parameter mh_init_scale is now equal to %f.',options_.mh_init_scale))
+                    else
+                        disp(['MH: You should Reduce mh_init_scale...'])
+                        disp(sprintf('MH: Parameter mh_init_scale is equal to %f.',options_.mh_init_scale))
+                        options_.mh_init_scale = input('MH: Enter a new value...  ');
+                    end
                     trial = trial+1;
                 end
             end
diff --git a/preprocessor/DynareMain.cc b/preprocessor/DynareMain.cc
index b05740086bf4e6654b91a68059a5ea44ec95589d..f62f603999accaf7a14621e39c4f9375440b8973 100644
--- a/preprocessor/DynareMain.cc
+++ b/preprocessor/DynareMain.cc
@@ -36,7 +36,7 @@ using namespace std;
    Splitting main() in two parts was necessary because ParsingDriver.h and MacroDriver.h can't be
    included simultaneously (because of Bison limitations).
 */
-void main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph,
+void main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph, bool nointeractive, 
            bool parallel, const string &parallel_config_file, const string &cluster_name, bool parallel_slave_open_mode,
            bool parallel_test
 #if defined(_WIN32) || defined(__CYGWIN32__)
@@ -48,7 +48,7 @@ void
 usage()
 {
   cerr << "Dynare usage: dynare mod_file [debug] [noclearall] [savemacro[=macro_file]] [onlymacro] [nolinemacro] [notmpterms] [nolog] [warn_uninit]"
-       << " [console] [nograph] [parallel[=cluster_name]] [conffile=parallel_config_path_and_filename] [parallel_slave_open_mode] [parallel_test] "
+       << " [console] [nograph] [nointeractive] [parallel[=cluster_name]] [conffile=parallel_config_path_and_filename] [parallel_slave_open_mode] [parallel_test] "
        << " [-D<variable>[=<value>]]"
 #if defined(_WIN32) || defined(__CYGWIN32__)
        << " [cygwin] [msvc]"
@@ -85,6 +85,7 @@ main(int argc, char **argv)
   bool warn_uninit = false;
   bool console = false;
   bool nograph = false;
+  bool nointeractive = false;
 #if defined(_WIN32) || defined(__CYGWIN32__)
   bool cygwin = false;
   bool msvc = false;
@@ -132,6 +133,8 @@ main(int argc, char **argv)
         console = true;
       else if (!strcmp(argv[arg], "nograph"))
         nograph = true;
+      else if (!strcmp(argv[arg], "nointeractive"))
+        nointeractive = true;
 #if defined(_WIN32) || defined(__CYGWIN32__)
       else if (!strcmp(argv[arg], "cygwin"))
         cygwin = true;
@@ -224,7 +227,7 @@ main(int argc, char **argv)
     return EXIT_SUCCESS;
 
   // Do the rest
-  main2(macro_output, basename, debug, clear_all, no_tmp_terms, no_log, no_warn, warn_uninit, console, nograph,
+  main2(macro_output, basename, debug, clear_all, no_tmp_terms, no_log, no_warn, warn_uninit, console, nograph, nointeractive, 
         parallel, parallel_config_file, cluster_name, parallel_slave_open_mode, parallel_test
 #if defined(_WIN32) || defined(__CYGWIN32__)
         , cygwin, msvc
diff --git a/preprocessor/DynareMain2.cc b/preprocessor/DynareMain2.cc
index 5927896c4c43ba0bac33c234bca35173fd104062..aed6e4e6aa3274b56aac31a56fae8ba1966fb949 100644
--- a/preprocessor/DynareMain2.cc
+++ b/preprocessor/DynareMain2.cc
@@ -26,7 +26,7 @@ using namespace std;
 #include "ConfigFile.hh"
 
 void
-main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph,
+main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph, bool nointeractive,
       bool parallel, const string &parallel_config_file, const string &cluster_name, bool parallel_slave_open_mode,
       bool parallel_test
 #if defined(_WIN32) || defined(__CYGWIN32__)
@@ -58,7 +58,7 @@ main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tm
   mod_file->computingPass(no_tmp_terms);
 
   // Write outputs
-  mod_file->writeOutputFiles(basename, clear_all, no_log, no_warn, console, nograph, config_file
+  mod_file->writeOutputFiles(basename, clear_all, no_log, no_warn, console, nograph, nointeractive, config_file
 #if defined(_WIN32) || defined(__CYGWIN32__)
                              , cygwin, msvc
 #endif
diff --git a/preprocessor/ModFile.cc b/preprocessor/ModFile.cc
index c2b10732e193646fc81af73253dd0ea3250c9863..13a7641f9e2b70d4244fae79d1d33eaf05939d4e 100644
--- a/preprocessor/ModFile.cc
+++ b/preprocessor/ModFile.cc
@@ -455,7 +455,7 @@ ModFile::computingPass(bool no_tmp_terms)
 }
 
 void
-ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, bool no_warn, bool console, bool nograph, const ConfigFile &config_file
+ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, bool no_warn, bool console, bool nograph, bool nointeractive, const ConfigFile &config_file
 #if defined(_WIN32) || defined(__CYGWIN32__)
                           , bool cygwin, bool msvc
 #endif
@@ -511,6 +511,9 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
                 << "options_.nodisplay = 1;" << endl;
   if (nograph)
     mOutputFile << "options_.nograph = 1;" << endl;
+
+  if (nointeractive)
+    mOutputFile << "options_.nointeractive = 1;" << endl;
     
   cout << "Processing outputs ...";
 
diff --git a/preprocessor/ModFile.hh b/preprocessor/ModFile.hh
index a10b90e8990357df13f34326046b4ab8383607af..28a4a2f4336d29247babca8c4155eabb92f408a5 100644
--- a/preprocessor/ModFile.hh
+++ b/preprocessor/ModFile.hh
@@ -128,10 +128,11 @@ public:
     \param clear_all Should a "clear all" instruction be written to output ?
     \param console Are we in console mode ?
     \param nograph Should we build the figures?
+    \param nointeractive Should Dynare request user input?
     \param cygwin Should the MEX command of use_dll be adapted for Cygwin?
     \param msvc Should the MEX command of use_dll be adapted for MSVC?
   */
-  void writeOutputFiles(const string &basename, bool clear_all, bool no_log, bool no_warn, bool console, bool nograph, const ConfigFile &config_file
+  void writeOutputFiles(const string &basename, bool clear_all, bool no_log, bool no_warn, bool console, bool nograph, bool nointeractive, const ConfigFile &config_file
 #if defined(_WIN32) || defined(__CYGWIN32__)
                         , bool cygwin, bool msvc
 #endif