diff --git a/matlab/read_key_value_string.m b/matlab/read_key_value_string.m
new file mode 100644
index 0000000000000000000000000000000000000000..a3b7243b67fc30e9d623834b0e796a0d711ebf9c
--- /dev/null
+++ b/matlab/read_key_value_string.m
@@ -0,0 +1,67 @@
+function c = read_key_value_string(s)
+
+% Transforms a string of Key-Value options as returned by the preprocessor (for optim option in the
+% estimation command) into a cell (first column for the option name ans second column for the
+% option value).
+
+% Copyright (C) 2011-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/>.
+
+iComma = strfind(s,',');
+nComma = length(iComma);
+
+if iseven(nComma)
+    error('read_key_value_string: Wrong number of Key-Value pairs!')
+end
+
+c = cell((nComma+1)/2,2);
+
+for i = 1:nComma
+    j = comma2opt(i);
+    if j>0, continue, end
+    if isequal(i,1)
+        i1 = 1;
+        i2 = iComma(i)-1;
+    else
+        i1 = iComma(i-1)+1;
+        i2 = iComma(i)-1;
+    end
+    if isequal(i,nComma)
+        i3 = iComma(i)+1;
+        i4 = length(s);
+    else
+        i3 = iComma(i)+1;
+        i4 = iComma(i+1)-1;
+    end
+    c(-j,1) = {s(i1+1:i2-1)};
+    tmp = str2num(s(i3:i4));
+    if isempty(tmp)
+        c(-j,2) = {s(i3+1:i4-1)};
+    else
+        c(-j,2) = {tmp};
+    end
+end
+
+
+function j = comma2opt(i)
+    if isodd(i)
+        % The comma is a separator between a Key and a Value (returned j is minus the option number).
+        j = - (i+1)/2;
+    else
+        % The comma is a separator between two options (returned j is the option number).
+        j = i/2;
+    end
\ No newline at end of file
diff --git a/matlab/utilities/general/iseven.m b/matlab/utilities/general/iseven.m
new file mode 100644
index 0000000000000000000000000000000000000000..fe15bc3b1355388c6e96a719c9977a48ba9545a0
--- /dev/null
+++ b/matlab/utilities/general/iseven.m
@@ -0,0 +1,20 @@
+function a= iseven(b)
+
+% Copyright (C) 2014 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/>.
+
+a = ~mod(b,2);
\ No newline at end of file
diff --git a/matlab/utilities/general/isodd.m b/matlab/utilities/general/isodd.m
new file mode 100644
index 0000000000000000000000000000000000000000..93f0e0aa0913e12654c36477da8383138e91577a
--- /dev/null
+++ b/matlab/utilities/general/isodd.m
@@ -0,0 +1,20 @@
+function a = isodd(b)
+
+% Copyright (C) 2014 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/>.
+
+a = mod(b,2);
\ No newline at end of file