diff --git a/license.txt b/license.txt
index 2ee4d605fd280d52bfa81fcc833c1d0b789438c2..ce635659846e90ae1f76228dba801c9945dbea05 100644
--- a/license.txt
+++ b/license.txt
@@ -68,6 +68,11 @@ Files: matlab/missing/bicgstab/bicgstab.m
 Copyright: 2008 Radek Salac
 License: GPL-3+
 
+Files: matlab/missing/strjoin/strjoin.m
+Copyright: 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu>
+           2013 Dynare Team
+License: GPL-3+
+
 Files: doc/dynare.texi doc/*.tex doc/*.svg doc/*.dia doc/*.pdf doc/*.bib
 Copyright: 1996-2013 Dynare Team
 License: GFDL-NIV-1.3+
diff --git a/matlab/dynare_config.m b/matlab/dynare_config.m
index 6d77c52fbea8320348796ad6db307000b3e4490e..68d720f4a9c17180c81d38b88ee2c7e7da60abd7 100644
--- a/matlab/dynare_config.m
+++ b/matlab/dynare_config.m
@@ -94,6 +94,11 @@ if exist('OCTAVE_VERSION') || matlab_ver_less_than('7.4')
     addpath([dynareroot '/missing/ilu'])
 end
 
+% strjoin is missing in older versions of MATLAB and in Octave
+if exist('OCTAVE_VERSION') || matlab_ver_less_than('8.1')
+    addpath([dynareroot '/missing/strjoin'])
+end
+
 % nanmean is in Octave Forge Statistics package and in MATLAB Statistics
 % toolbox
 if (exist('OCTAVE_VERSION') && ~user_has_octave_forge_package('statistics')) ...
diff --git a/matlab/missing/strjoin/strjoin.m b/matlab/missing/strjoin/strjoin.m
new file mode 100644
index 0000000000000000000000000000000000000000..f14f42d4fa4d0b226e8673539c8683a25411c0da
--- /dev/null
+++ b/matlab/missing/strjoin/strjoin.m
@@ -0,0 +1,36 @@
+function rval = strjoin (c, varargin)
+%function rval = strjoin (c, varargin)
+
+% Copyright (C) 2007 Muthiah Annamalai <muthiah.annamalai@uta.edu>
+% 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/>.
+
+assert(iscellstr(c), 'strjoin: first argument is a cell array of strings');
+assert(nargin <= 2, 'strjoin: takes one or two arguments');
+delimiter = ' ';
+if nargin == 2
+    delimiter = varargin{1};
+    assert(ischar(delimiter), 'strjoin: second argument must be a char');
+end
+
+rval = '';
+L = length(c);
+for idx = 1:(L-1)
+    rval = [rval c{idx} delimiter];
+end
+rval = [rval c{L}];
+end