diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index 1bca1591522f42ac15b804de3a07d25b49a33bcf..cfb86890f17a5cfd5eca06f4b3fd89a4a7e06e27 100644
--- a/matlab/dsge_likelihood.m
+++ b/matlab/dsge_likelihood.m
@@ -627,7 +627,7 @@ if analytic_derivation,
         analytic_deriv_info={analytic_derivation,DT,DYss,DOm,DH,DP,asy_Hess};
     else
         analytic_deriv_info={analytic_derivation,DT,DYss,DOm,DH,DP,D2T,D2Yss,D2Om,D2H,D2P};
-        clear DT DYss DOm DH DP D2T D2Yss D2Om D2H D2P,
+        clear DT DYss DOm DP D2T D2Yss D2Om D2H D2P,
     end
 else
     analytic_deriv_info={0};
diff --git a/matlab/dynare_estimation_init.m b/matlab/dynare_estimation_init.m
index b8303944457f90fde6480344cbf61f10dcc47b25..1777f4564ee6215f4ba2c2d473fc244b1e51fb69 100644
--- a/matlab/dynare_estimation_init.m
+++ b/matlab/dynare_estimation_init.m
@@ -421,7 +421,10 @@ else
                                              bayestopt_.smoother_var_list);
 end;
 
-if options_.analytic_derivation,
+if options_.analytic_derivation
+    if options_.lik_init == 3
+        error('analytic derivation is incompatible with diffuse filter')
+    end
     options_.analytic_derivation = 1;
     if ~(exist('sylvester3','file')==2),
         dynareroot = strrep(which('dynare'),'dynare.m','');