diff --git a/matlab/dyn_first_order_solver.m b/matlab/dyn_first_order_solver.m
index 53a77d5979cd974170430197d2c17da6618db1a3..004adaa76fc39761ffd5d2a207cf55b2292950e7 100644
--- a/matlab/dyn_first_order_solver.m
+++ b/matlab/dyn_first_order_solver.m
@@ -258,9 +258,9 @@ if info1 == 1
     Z11t = Z(indx_stable_root,    indx_stable_root)';
     Z21  = Z(indx_explosive_root, indx_stable_root);
     Z22  = Z(indx_explosive_root, indx_explosive_root);
-    if ~isfloat(Z21) && (condest(Z21) > 1e9)
+    if ~isscalar(Z22) && (condest(Z22) > 1e9)
         info(1) = 5;
-        info(2) = condest(Z21);
+        info(2) = condest(Z22);
         return;
     else
         gx = - Z22 \ Z21;
diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m
index ce0a43109e1bdb62a872004ac00597591b3f5f03..8ef82d5b6350188198c59fc714946e906c4e3db2 100644
--- a/matlab/global_initialization.m
+++ b/matlab/global_initialization.m
@@ -525,6 +525,8 @@ options_.risky_steadystate = 0;
 
 % initialize persistent variables in priordens()
 priordens([],[],[],[],[],[],1);
+% initialize persistent variables in dyn_first_order_solver()
+dyn_first_order_solver();
 
 % Set dynare random generator and seed.
 set_dynare_seed('default');