diff --git a/m4/ax_mexopts.m4 b/m4/ax_mexopts.m4
index 97b00c140c3adb1b2142433afc16170446e4dcd2..90ffac234837c78b15ff2e9da160dd028326d792 100644
--- a/m4/ax_mexopts.m4
+++ b/m4/ax_mexopts.m4
@@ -71,7 +71,11 @@ case ${MATLAB_ARCH} in
     fi
     MATLAB_DEFS="$MATLAB_DEFS -DNDEBUG"
     MATLAB_CFLAGS="-fno-common -no-cpp-precomp -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -fexceptions -O2"
-    MATLAB_LDFLAGS="-L$MATLAB/bin/${MATLAB_ARCH} -Wl,-twolevel_namespace -undefined error -arch $ARCHS -Wl,-syslibroot,$SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle -Wl,-exported_symbols_list,\$(top_srcdir)/mexFunction-MacOSX.map"
+    # Work around for slicot configuration: need to remove exported_symbols_list
+    # flag because there's no mexfunction in the configure script
+    MATLAB_LDFLAGS_NOMAP="-L$MATLAB/bin/${MATLAB_ARCH} -Wl,-twolevel_namespace -undefined error -arch $ARCHS -Wl,-syslibroot,$SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -bundle"
+    MATLAB_MAPFLAG="-Wl,-exported_symbols_list,\$(top_srcdir)/mexFunction-MacOSX.map"
+    MATLAB_LDFLAGS="$MATLAB_LDFLAGS_NOMAP $MATLAB_MAPFLAG"
     MATLAB_LIBS="-lmx -lmex -lmat -lstdc++ -lmwlapack"
     MATLAB_CXXFLAGS="-fno-common -no-cpp-precomp -fexceptions -arch $ARCHS -isysroot $SDKROOT -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET -O2"
     MATLAB_FFLAGS="-fexceptions -fbackslash -arch $ARCHS"
diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index 57b5e2231ab5036ab4bda016adebf83ab0e12f86..647c17ecbe223e72faf153b267ab4ce486233d64 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;
@@ -516,6 +523,7 @@ if analytic_derivation,
         D2P=sparse(size(D2Om,1),size(D2Om,2)); %zeros([size(T),length(xparam1),length(xparam1)]);
         jcount=0;
     end
+    if DynareOptions.lik_init==1,
     for i=1:EstimatedParameters.nvx
         k =EstimatedParameters.var_exo(i,1);
         DQ(k,k,i) = 2*sqrt(Q(k,k));
@@ -534,6 +542,7 @@ if analytic_derivation,
         end
         end
     end
+    end
     offset = EstimatedParameters.nvx;
     for i=1:EstimatedParameters.nvn
         k = EstimatedParameters.var_endo(i,1);
@@ -543,6 +552,7 @@ if analytic_derivation,
         end
     end
     offset = offset + EstimatedParameters.nvn;
+    if DynareOptions.lik_init==1,
     for j=1:EstimatedParameters.np
         dum =  lyapunov_symm(T,DT(:,:,j+offset)*Pstar*T'+T*Pstar*DT(:,:,j+offset)'+DOm(:,:,j+offset),DynareOptions.qz_criterium,DynareOptions.lyapunov_complex_threshold);
 %         kk = find(abs(dum) < 1e-12);
@@ -565,6 +575,7 @@ if analytic_derivation,
         end
         end
     end
+    end
     if analytic_derivation==1,
         analytic_deriv_info={analytic_derivation,DT,DYss,DOm,DH,DP,asy_Hess};
     else
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
 
diff --git a/mex/build/matlab/configure.ac b/mex/build/matlab/configure.ac
index 99471caf6e257f63e795a29922345532bce20202..ca3011331f76790986a7062d2407c9c887694e22 100644
--- a/mex/build/matlab/configure.ac
+++ b/mex/build/matlab/configure.ac
@@ -85,7 +85,15 @@ AM_CONDITIONAL([HAVE_MATIO], [test "x$ac_cv_header_matio_h" = "xyes" -a "x$ac_cv
 # Check for libslicot, needed by kalman_steady_state
 AC_F77_FUNC(sb02od)
 LDFLAGS_SAVED=$LDFLAGS
-LDFLAGS=$MATLAB_LDFLAGS
+case ${MATLAB_ARCH} in
+   maci | maci64)
+     # Work around for exported_symbols_list flag present in Mac MATLAB_LDFLAGS
+     LDFLAGS=$MATLAB_LDFLAGS_NOMAP
+     ;;
+   *)
+     LDFLAGS=$MATLAB_LDFLAGS
+     ;;
+esac
 case ${MATLAB_ARCH} in
    glnxa64 | win64 | maci64)
      AX_COMPARE_VERSION([$MATLAB_VERSION], [ge], [7.8], [use_64_bit_indexing=yes], [use_64_bit_indexing=no])