diff --git a/matlab/cli/prior.m b/matlab/cli/prior.m
index f25c4a9fa24604b3f803f071c1c4ff85b5cf50fd..c5c25330e435b8443406fd6450eac67301da7fd3 100644
--- a/matlab/cli/prior.m
+++ b/matlab/cli/prior.m
@@ -44,6 +44,24 @@ global options_ M_ estim_params_ bayestopt_ oo_
 
 donesomething = false;
 
+if ~isbayes(estim_params_)
+    warning('No prior detected!')
+    return
+end
+
+if (size(estim_params_.var_endo,1) || size(estim_params_.corrn,1))
+    % Prior over measurement errors are defined...
+   if ((isfield(options_,'varobs') && isempty(options_.varobs)) || ~isfield(options_,'varobs'))
+       % ... But the list of observed variabled is not yet defined.
+       warning('Prior detected on measurement erros, but no list of observed variables (varobs is missing)!')
+       return
+   end
+end
+
+% Fill or update bayestopt_ structure
+[xparam1,estim_params_,bayestopt_,lb,ub,M_] = set_prior(estim_params_,M_,options_);
+
+
 % Temporarly change qz_criterium option value
 changed_qz_criterium_flag  = 0;
 if isempty(options_.qz_criterium)
@@ -57,8 +75,6 @@ M_.dname = M_.fname;
 order = options_.order;
 options_.order = 1;
 
-[xparam1,estim_params_,bayestopt_,lb,ub,M_] = set_prior(estim_params_,M_,options_);
-
 if ismember('plot', varargin)
     plot_priors(bayestopt_,M_,estim_params_,options_)
     donesomething = true;