diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index 94a0cde4c1f893644e908d97e74162ae990ab750..08393a1a9deed5cb8c024d60f56a6ec90b995f4c 100644
--- a/matlab/dsge_likelihood.m
+++ b/matlab/dsge_likelihood.m
@@ -146,6 +146,21 @@ trend_coeff = [];
 exit_flag   = 1;
 info        = 0;
 singularity_flag = 0;
+DLIK        = [];
+AHess       = [];
+
+if DynareOptions.estimation_dll
+    [fval,exit_flag,ys,trend_coeff,info,params,H,Q] ...
+        = logposterior(xparam1,DynareDataset, DynareOptions,Model, ...
+                          EstimatedParameters,BayesInfo,DynareResults);
+    Model.params = params;
+    if ~isequal(Model.H,0)
+        Model.H = H;
+    end
+    Model.Sigma_e = Q;
+    DynareResults.dr.ys = ys;
+    return
+end
 
 % Set flag related to analytical derivatives.
 if nargout > 9
diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m
index 7cfb6f52878e01534fa1b9743ef977272e6c2772..68303a1b6f146d48f356158967e36a6432daa660 100644
--- a/matlab/global_initialization.m
+++ b/matlab/global_initialization.m
@@ -322,6 +322,7 @@ options_.filter_covariance = 0;
 options_.filter_decomposition = 0;
 options_.selected_variables_only = 0;
 options_.initialize_estimated_parameters_with_the_prior_mode = 0;
+options_.estimation_dll = 0;
 % Misc
 options_.conf_sig = 0.6;
 oo_.exo_simul = [];