diff --git a/matlab/initial_estimation_checks.m b/matlab/initial_estimation_checks.m
index 1ef5b7a22448e081f11b5b478c14b3f8c0511795..d384b5f866ecd5ebff277ffcb1f70b5f985a167f 100644
--- a/matlab/initial_estimation_checks.m
+++ b/matlab/initial_estimation_checks.m
@@ -45,11 +45,13 @@ if DynareOptions.order>1 && any(any(isnan(DynareDataset.data)))
     error('initial_estimation_checks:: particle filtering does not support missing observations')
 end
 
-if maximum_number_non_missing_observations>Model.exo_nbr+EstimatedParameters.nvn
+non_zero_ME=length(EstimatedParameters.H_entries_to_check_for_positive_definiteness);
+
+if maximum_number_non_missing_observations>Model.exo_nbr+non_zero_ME
     error(['initial_estimation_checks:: Estimation can''t take place because there are less declared shocks than observed variables!'])
 end
 
-if maximum_number_non_missing_observations>length(find(diag(Model.Sigma_e)))+EstimatedParameters.nvn
+if maximum_number_non_missing_observations>length(find(diag(Model.Sigma_e)))+non_zero_ME
     error(['initial_estimation_checks:: Estimation can''t take place because too many shocks have been calibrated with a zero variance!'])
 end