diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index 0aaee721588b1c48a90ed4158dc1e58ff66ce908..c6ab3ccd90d67856ec5cb5136615667893d68274 100644
--- a/matlab/dsge_likelihood.m
+++ b/matlab/dsge_likelihood.m
@@ -427,6 +427,13 @@ switch DynareOptions.lik_init
                                                         T,R,Q,H1,Z,mmm,pp,rr);
         diffuse_periods = length(dlik);
     end
+    if isnan(dLIK),
+        fval=dLIK;
+        info = 45;
+        exit_flag = 0;
+        return
+    end
+    
   case 4% Start from the solution of the Riccati equation.
     if kalman_algo ~= 2
         kalman_algo = 1;
diff --git a/matlab/kalman/likelihood/univariate_kalman_filter_d.m b/matlab/kalman/likelihood/univariate_kalman_filter_d.m
index e983fd820d74c00f5f9b476d41a2c07494d4fd99..7bf16ef5754a3f622d706b3a20ff6905cfd16242 100644
--- a/matlab/kalman/likelihood/univariate_kalman_filter_d.m
+++ b/matlab/kalman/likelihood/univariate_kalman_filter_d.m
@@ -155,8 +155,8 @@ while newRank && (t<=last)
 end
 
 if (t>last)
-    error(['univariate_diffuse_kalman_filter:: There isn''t enough information to estimate the initial conditions of the nonstationary variables']);
-    LIK = NaN;
+    warning(['univariate_diffuse_kalman_filter:: There isn''t enough information to estimate the initial conditions of the nonstationary variables']);
+    dLIK = NaN;
     return
 end