diff --git a/matlab/check_consistency_covariances.m b/matlab/check_consistency_covariances.m
new file mode 100644
index 0000000000000000000000000000000000000000..e8245721de830926aa3255c9d72eff59ef5d3aee
--- /dev/null
+++ b/matlab/check_consistency_covariances.m
@@ -0,0 +1,31 @@
+function correct_flag=check_consistency_covariances(Covariance_matrix)
+% function check_consistency_covariances(Covariance_matrix)
+% checks consistency of covariance matrices by checking whether the
+% covariances imply correlations bigger than 1.
+%
+% Outputs: correct_flag         [scalar] 0 if not consistent, 1 otherwise
+% Inputs: Covariance_matrix     [matrix] covariance matrix to be checked
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+%compute theoretical bound by assuming correlation of 1
+bound=diag(sqrt(diag(Covariance_matrix)))*ones(size(Covariance_matrix))*diag(sqrt(diag(Covariance_matrix)));
+correct_flag=1;
+if any(any(tril(Covariance_matrix,-1)>bound)) || any(any(tril(Covariance_matrix,-1)<-bound))
+    correct_flag=0;
+end
\ No newline at end of file
diff --git a/matlab/check_model.m b/matlab/check_model.m
index 3edf7b74627f4f214ea9d683ba0415a131a6f2f6..60cf7cba1e5472ce1a0a40d03665f076ec66c267 100644
--- a/matlab/check_model.m
+++ b/matlab/check_model.m
@@ -30,4 +30,13 @@ end
 if (DynareModel.exo_det_nbr > 0) && (DynareModel.maximum_lag > 1 || DynareModel.maximum_lead > 1)
     error(['Exogenous deterministic variables are currently only allowed in' ...
            ' models with leads and lags on only one period'])
+end
+
+if ~check_consistency_covariances(DynareModel.Sigma_e)
+    error('The specified covariances for the structural errors are not consistent with the variances as they imply a correlation larger than +-1')
+end
+if ~isequal(DynareModel.H,0)
+    if ~check_consistency_covariances(DynareModel.H)
+        error('The specified covariances for the measurement errors are not consistent with the variances as they imply a correlation larger than +-1')
+    end
 end
\ No newline at end of file