diff --git a/matlab/dsge_posterior_theoretical_correlation.m b/matlab/dsge_posterior_theoretical_correlation.m
index 4c85b5de6177ccbcccdca6d8d1752cc975a19a41..12ca2874fa21c00961788a74400bb1df5f66b82f 100644
--- a/matlab/dsge_posterior_theoretical_correlation.m
+++ b/matlab/dsge_posterior_theoretical_correlation.m
@@ -72,7 +72,7 @@ linea = 0;
 for file = 1:NumberOfDrawsFiles
     load([M_.dname '/metropolis/' DrawsFiles(file).name ]);
     NumberOfDraws = rows(pdraws);
-    isdrsaved = cols(pdraws)-1;
+    isdrsaved = columns(pdraws)-1;
     for linee = 1:NumberOfDraws
         linea = linea+1;
         if isdrsaved
diff --git a/matlab/dsge_posterior_theoretical_covariance.m b/matlab/dsge_posterior_theoretical_covariance.m
index b7a3c98736d51ab5c947e929b2d882b3b8238ea6..4005b2924b14cbef91aa4656ad31623a29e6a59f 100644
--- a/matlab/dsge_posterior_theoretical_covariance.m
+++ b/matlab/dsge_posterior_theoretical_covariance.m
@@ -71,7 +71,7 @@ linea = 0;
 for file = 1:NumberOfDrawsFiles
     load([M_.dname '/metropolis/' DrawsFiles(file).name ],'pdraws');
     NumberOfDraws = rows(pdraws);
-    isdrsaved = cols(pdraws)-1;
+    isdrsaved = columns(pdraws)-1;
     for linee = 1:NumberOfDraws
         linea = linea+1;
         if isdrsaved
diff --git a/matlab/dsge_posterior_theoretical_variance_decomposition.m b/matlab/dsge_posterior_theoretical_variance_decomposition.m
index fc5c3e1be0c2405a1ca6b807ed2e60508c2472ab..06432b056b49dda6f38c545944b7d15c8e8a1df2 100644
--- a/matlab/dsge_posterior_theoretical_variance_decomposition.m
+++ b/matlab/dsge_posterior_theoretical_variance_decomposition.m
@@ -74,7 +74,7 @@ DecompFileNumber = 1;
 linea = 0;
 for file = 1:NumberOfDrawsFiles
     load([M_.dname '/metropolis/' DrawsFiles(file).name ]);
-    isdrsaved = cols(pdraws)-1;
+    isdrsaved = columns(pdraws)-1;
     NumberOfDraws = rows(pdraws);
     for linee = 1:NumberOfDraws
         linea = linea+1;
diff --git a/matlab/dynare_config.m b/matlab/dynare_config.m
index 39f288f5b191bd1e7d09b78c29589bdb7324c26e..cd42639de603f964c65e9c72c03778a4fbcfacb2 100644
--- a/matlab/dynare_config.m
+++ b/matlab/dynare_config.m
@@ -15,7 +15,7 @@ function dynareroot = dynare_config(path_to_dynare)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2001-2008 Dynare Team
+% Copyright (C) 2001-2009 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -40,17 +40,23 @@ dynareroot = strrep(which('dynare.m'),'dynare.m','');
 addpath([dynareroot '/distributions/'])
 addpath([dynareroot '/kalman/'])
 addpath([dynareroot '/kalman/likelihood'])
+addpath([dynareroot '/AIM/'])
 
-% Add path to distribution-related function if under Matlab
-% without the statistics toolbox
-if ~exist('OCTAVE_VERSION') && isempty(ver('stats'))
-    addpath([dynareroot '/distributions/toolbox/'])
-end
-
-if exist([dynareroot '/AIM'])==7  % Add path to G.Anderson AIM solver (added by GP July'08)
-    addpath([dynareroot '/AIM/']);
+% For functions that exist under Octave and not under Matlab, or vice-versa,
+% we provide some replacement functions
+if exist('OCTAVE_VERSION')
+    % Functions missing under Octave
+    addpath([dynareroot '/octave/'])
+else
+    % Functions missing under Matlab
+    addpath([dynareroot '/matlab/'])
+    if isempty(ver('stats'))
+        % Replacements for functions of the stats toolbox
+        addpath([dynareroot '/matlab/stats/'])
+    end
 end
 
+% Add path to MEX files
 if exist('OCTAVE_VERSION')
     path_to_mex_files = [dynareroot '../mex/octave/'] ;
 else
diff --git a/matlab/cols.m b/matlab/matlab/columns.m
similarity index 79%
rename from matlab/cols.m
rename to matlab/matlab/columns.m
index 613b147b9ca4253a2f931781a76d7c1e23f340bb..95a89b56adff8f7ccf3651b69dac0b760766464a 100644
--- a/matlab/cols.m
+++ b/matlab/matlab/columns.m
@@ -1,6 +1,8 @@
-function c = cols(M)
+function c = columns(M)
+% Computes the number of columns of a matrix
+% NOTE: this function is builtin in Octave
 
-% Copyright (C) 2008 Dynare Team
+% Copyright (C) 2008-2009 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -17,4 +19,4 @@ function c = cols(M)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-    c = size(M,2);
\ No newline at end of file
+    c = size(M,2);
diff --git a/matlab/rows.m b/matlab/matlab/rows.m
similarity index 80%
rename from matlab/rows.m
rename to matlab/matlab/rows.m
index 285a600181389b6d221bc9ec774ff768803c7461..c91b071fbc5a47f6513c4812430445d3b54e2801 100644
--- a/matlab/rows.m
+++ b/matlab/matlab/rows.m
@@ -1,6 +1,8 @@
-function nr=rows(x)
+function r = rows(x)
+% Computes the number of rows of a matrix
+% NOTE: this function is builtin in Octave
 
-% Copyright (C) 2005 Dynare Team
+% Copyright (C) 2005-2009 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -17,4 +19,4 @@ function nr=rows(x)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-  nr = size(x,1);
\ No newline at end of file
+  r = size(x,1);
diff --git a/matlab/distributions/toolbox/betacdf.m b/matlab/matlab/stats/betacdf.m
similarity index 100%
rename from matlab/distributions/toolbox/betacdf.m
rename to matlab/matlab/stats/betacdf.m
diff --git a/matlab/distributions/toolbox/betainv.m b/matlab/matlab/stats/betainv.m
similarity index 100%
rename from matlab/distributions/toolbox/betainv.m
rename to matlab/matlab/stats/betainv.m
diff --git a/matlab/distributions/toolbox/betapdf.m b/matlab/matlab/stats/betapdf.m
similarity index 100%
rename from matlab/distributions/toolbox/betapdf.m
rename to matlab/matlab/stats/betapdf.m
diff --git a/matlab/distributions/toolbox/betarnd.m b/matlab/matlab/stats/betarnd.m
similarity index 100%
rename from matlab/distributions/toolbox/betarnd.m
rename to matlab/matlab/stats/betarnd.m
diff --git a/matlab/distributions/toolbox/chi2inv.m b/matlab/matlab/stats/chi2inv.m
similarity index 100%
rename from matlab/distributions/toolbox/chi2inv.m
rename to matlab/matlab/stats/chi2inv.m
diff --git a/matlab/distributions/toolbox/common_size.m b/matlab/matlab/stats/common_size.m
similarity index 100%
rename from matlab/distributions/toolbox/common_size.m
rename to matlab/matlab/stats/common_size.m
diff --git a/matlab/distributions/toolbox/exprnd.m b/matlab/matlab/stats/exprnd.m
similarity index 100%
rename from matlab/distributions/toolbox/exprnd.m
rename to matlab/matlab/stats/exprnd.m
diff --git a/matlab/distributions/toolbox/gamcdf.m b/matlab/matlab/stats/gamcdf.m
similarity index 100%
rename from matlab/distributions/toolbox/gamcdf.m
rename to matlab/matlab/stats/gamcdf.m
diff --git a/matlab/distributions/toolbox/gaminv.m b/matlab/matlab/stats/gaminv.m
similarity index 100%
rename from matlab/distributions/toolbox/gaminv.m
rename to matlab/matlab/stats/gaminv.m
diff --git a/matlab/distributions/toolbox/gampdf.m b/matlab/matlab/stats/gampdf.m
similarity index 100%
rename from matlab/distributions/toolbox/gampdf.m
rename to matlab/matlab/stats/gampdf.m
diff --git a/matlab/distributions/toolbox/gamrnd.m b/matlab/matlab/stats/gamrnd.m
similarity index 100%
rename from matlab/distributions/toolbox/gamrnd.m
rename to matlab/matlab/stats/gamrnd.m
diff --git a/matlab/distributions/toolbox/normcdf.m b/matlab/matlab/stats/normcdf.m
similarity index 100%
rename from matlab/distributions/toolbox/normcdf.m
rename to matlab/matlab/stats/normcdf.m
diff --git a/matlab/distributions/toolbox/norminv.m b/matlab/matlab/stats/norminv.m
similarity index 100%
rename from matlab/distributions/toolbox/norminv.m
rename to matlab/matlab/stats/norminv.m
diff --git a/matlab/distributions/toolbox/normpdf.m b/matlab/matlab/stats/normpdf.m
similarity index 100%
rename from matlab/distributions/toolbox/normpdf.m
rename to matlab/matlab/stats/normpdf.m
diff --git a/matlab/distributions/toolbox/stdnormal_cdf.m b/matlab/matlab/stats/stdnormal_cdf.m
similarity index 100%
rename from matlab/distributions/toolbox/stdnormal_cdf.m
rename to matlab/matlab/stats/stdnormal_cdf.m
diff --git a/matlab/distributions/toolbox/stdnormal_inv.m b/matlab/matlab/stats/stdnormal_inv.m
similarity index 100%
rename from matlab/distributions/toolbox/stdnormal_inv.m
rename to matlab/matlab/stats/stdnormal_inv.m
diff --git a/matlab/distributions/toolbox/stdnormal_pdf.m b/matlab/matlab/stats/stdnormal_pdf.m
similarity index 100%
rename from matlab/distributions/toolbox/stdnormal_pdf.m
rename to matlab/matlab/stats/stdnormal_pdf.m
diff --git a/mex/octave/rcond.m b/matlab/octave/rcond.m
similarity index 100%
rename from mex/octave/rcond.m
rename to matlab/octave/rcond.m
diff --git a/windows/dynare.nsi b/windows/dynare.nsi
index ab11c28609285d1e7e789805fd0d4bfc8335fe2c..4498b46fdeb3c34154297e44b556942fdfe761d3 100644
--- a/windows/dynare.nsi
+++ b/windows/dynare.nsi
@@ -66,7 +66,7 @@ Section
  File ..\mex\2007b\*.mexw32
 
  SetOutPath $INSTDIR\mex\octave
- File ..\mex\octave\rcond.m ..\mex\octave\*.mex
+ File ..\mex\octave\*.mex
 
  SetOutPath $INSTDIR\doc
  File ..\doc\manual.pdf ..\doc\guide.pdf ..\doc\userguide\UserGuide.pdf ..\doc\bvar-a-la-sims.pdf ..\doc\macroprocessor\macroprocessor.pdf ..\doc\preprocessor\preprocessor.pdf