diff --git a/matlab/dynare_solve.m b/matlab/dynare_solve.m
index d020df37027ca9209e8b54618ec00c2d2dd6df7a..a6129fd82db6e04102884653876ad037335e7336 100644
--- a/matlab/dynare_solve.m
+++ b/matlab/dynare_solve.m
@@ -37,6 +37,7 @@ global options_
 
 tolf = options_.solve_tolf ;
 info = 0;
+nn = size(x,1);
 
 % checking initial values
 if jacobian_flag
@@ -101,11 +102,8 @@ if options_.solve_algo == 0
         info = 1;
     end
 elseif options_.solve_algo == 1
-    nn = size(x,1);
     [x,info]=solve1(func,x,1:nn,1:nn,jacobian_flag,1,varargin{:});
 elseif options_.solve_algo == 2 || options_.solve_algo == 4
-    nn = size(x,1) ;
-
     if ~jacobian_flag
         fjac = zeros(nn,nn) ;
         dh = max(abs(x),options_.gstep(1)*ones(nn,1))*eps^(1/3);