diff --git a/matlab/model_diagnostics.m b/matlab/model_diagnostics.m
index b34d21b934466c16ce137b5b872c351c6b5dc37c..25552465c3e21fbeac595a82fe27d405e7e1260e 100644
--- a/matlab/model_diagnostics.m
+++ b/matlab/model_diagnostics.m
@@ -40,6 +40,24 @@ endo_names = M.endo_names;
 lead_lag_incidence = M.lead_lag_incidence;
 maximum_endo_lag = M.maximum_endo_lag;
 
+if options.ramsey_policy
+    %test whether specification matches
+    inst_nbr = size(options.instruments,1);
+    if inst_nbr~=0
+        orig_endo_aux_nbr = M.orig_endo_nbr + min(find([M.aux_vars.type] == 6)) - 1;
+        implied_inst_nbr = orig_endo_aux_nbr - M.orig_eq_nbr;
+        if inst_nbr>implied_inst_nbr
+            error('You have specified more instruments than there are omitted equations')
+        elseif inst_nbr<implied_inst_nbr
+            error('You have specified fewer instruments than there are omitted equations')
+        end
+    else
+        if options.steadystate_flag
+            error('You have specified a steady state file, but not provided an instrument. Either delete the steady state file or provide an instrument')
+        end
+    end
+end
+
 problem_dummy=0;
 %
 % missing variables at the current period