diff --git a/matlab/imcforecast.m b/matlab/imcforecast.m
index f7fa7295195496bed2a16d83e87fe25b9ae352b6..e1fafcfa9b622110a0ccad25c5d1e6606d3e21da 100644
--- a/matlab/imcforecast.m
+++ b/matlab/imcforecast.m
@@ -28,7 +28,7 @@ function imcforecast(constrained_paths, constrained_vars, options_cond_fcst)
 % [1] Results are stored in oo_.conditional_forecast.
 % [2] Use the function plot_icforecast to plot the results.
 
-% Copyright (C) 2006-2019 Dynare Team
+% Copyright (C) 2006-2020 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -249,7 +249,7 @@ for b=1:options_cond_fcst.replic %conditional forecast using cL set to constrain
     [FORCS1(:,:,b), FORCS1_shocks(:,:,b)] = mcforecast3(cL,options_cond_fcst.periods,constrained_paths,shocks,FORCS1(:,:,b),T,R,mv, mu);
     FORCS1(:,:,b)=FORCS1(:,:,b)+trend; %add trend
 end
-if max(max(max(abs(FORCS1(constrained_vars,1:cL,:)-constrained_paths))))>1e-4
+if max(max(max(abs(bsxfun(@minus,FORCS1(constrained_vars,1:cL,:),constrained_paths)))))>1e-4
     fprintf('\nconditional_forecasts: controlling of variables was not successful.\n')
     fprintf('This can be due to numerical imprecision (e.g. explosive simulations)\n')
     fprintf('or because the instrument(s) do not allow controlling the variable(s).\n')