diff --git a/matlab/missing/mex/disclyap_fast/disclyap_fast.m b/matlab/missing/mex/disclyap_fast/disclyap_fast.m
index 25384fd01c6db4876262b98d49651fffb9c91f97..b02a7d068ac1b545940415b68668945f61c718c7 100644
--- a/matlab/missing/mex/disclyap_fast/disclyap_fast.m
+++ b/matlab/missing/mex/disclyap_fast/disclyap_fast.m
@@ -59,7 +59,7 @@ while matd > tol && iter< max_iter
     A0=A1;
     iter=iter+1;
 end
-if iter==max_iter
+if iter==max_iter || isnan(matd)
     X=NaN(size(P0));
     exitflag=1;
     return