diff --git a/tests/.gitignore b/tests/.gitignore
index aa9af0d9870a59bb1cf83f41ad77cc94a8dd6d66..ecf434c222f2f054611aea9d3cb491a7037f9d1c 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -21,6 +21,8 @@
 !/AIM/fsdat.m
 !/block_bytecode/MARK3_endo.dat
 !/block_bytecode/MARK3_exo.dat
+!/block_bytecode/run_block_bytecode_tests.m
+!/block_bytecode/run_ls2003.m
 !/bvar_a_la_sims/bvar_sample.m
 !/external_function/extFunDeriv.m
 !/external_function/extFunNoDerivs.m
diff --git a/tests/block_bytecode/run_block_bytecode_tests.m b/tests/block_bytecode/run_block_bytecode_tests.m
new file mode 100644
index 0000000000000000000000000000000000000000..00c02af5eabcc2b79613f554bbc3889c45458782
--- /dev/null
+++ b/tests/block_bytecode/run_block_bytecode_tests.m
@@ -0,0 +1,61 @@
+## Copyright (C) 2010 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/>.
+
+addpath(argv(){1})
+
+if !strcmp(dynare_version(), argv(){2})
+  error("Incorrect version of Dynare is being tested")
+endif
+
+## Ask gnuplot to create graphics in text mode
+## Note that setenv() was introduced in Octave 3.0.2, for compatibility
+## with MATLAB
+putenv("GNUTERM", "dumb")
+
+for block = 0:1
+  for bytecode = 0:1
+    ## Recall that solve_algo={0,7} and stack_solve_algo=2 are not supported
+    ## under Octave
+    default_solve_algo = 2;
+    default_stack_solve_algo = 0;
+    if !block && !bytecode
+      solve_algos = 1:4;
+      stack_solve_algos = 0;
+    elseif block && !bytecode
+      solve_algos = [1:4 6 8];
+      stack_solve_algos = [0 1 3 4];
+    else
+      solve_algos = [1:6 8];
+      stack_solve_algos = [0 1 3:5];
+    endif
+
+    for i = 1:length(solve_algos)
+      save ws
+      run_ls2003(block, bytecode, solve_algos(i), default_stack_solve_algo)
+      load ws
+    endfor
+    for i = 1:length(stack_solve_algos)
+      save ws
+      run_ls2003(block, bytecode, default_solve_algo, stack_solve_algos(i))
+      load ws
+    endfor
+  endfor
+endfor
+
+## Local variables:
+## mode: Octave
+## End:
diff --git a/tests/block_bytecode/run_ls2003.m b/tests/block_bytecode/run_ls2003.m
new file mode 100644
index 0000000000000000000000000000000000000000..61d7fd838aa5a63b1f1e7d7a07dea31b83860b9d
--- /dev/null
+++ b/tests/block_bytecode/run_ls2003.m
@@ -0,0 +1,29 @@
+## Copyright (C) 2010 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/>.
+
+function run_ls2003(block, bytecode, solve_algo, stack_solve_algo)
+  printf("\nTEST: ls2003 (block=%d, bytecode=%d, solve_algo=%d, stack_solve_algo=%d)...\n", block, bytecode, solve_algo, stack_solve_algo);
+  fid = fopen("ls2003_tmp.mod", "w");
+  assert(fid > 0);
+  fprintf(fid, "@#define block = %d\n@#define bytecode = %d\n@#define solve_algo = %d\n@#define stack_solve_algo = %d\n@#include \"ls2003.mod\"\n", block, bytecode, solve_algo, stack_solve_algo)
+  fclose(fid);
+  dynare("ls2003_tmp.mod")
+endfunction
+
+## Local variables:
+## mode: Octave
+## End: