diff --git a/matlab/@dynDates/sort.m b/matlab/@dynDates/sort.m
new file mode 100644
index 000000000..f25529fe6
--- /dev/null
+++ b/matlab/@dynDates/sort.m
@@ -0,0 +1,83 @@
+function dd = sort(dd)
+% sort method for dynDates class.
+
+%@info:
+%! @deftypefn {Function File} {@var{a} =} sort (@var{a})
+%! @anchor{dynDates/sort}
+%! @sp 1
+%! Sort method for the Dynare dates class.
+%! @sp 2
+%! @strong{Inputs}
+%! @sp 1
+%! @table @ @var
+%! @item a
+%! Object instantiated by @ref{dynDates}.
+%! @end table
+%! @sp 2
+%! @strong{Outputs}
+%! @sp 1
+%! @table @ @var
+%! @item a
+%! Object instantiated by @ref{dynDates}, with dates sorted by increasing order.
+%! @end table
+%! @sp 2
+%! @strong{This function is called by:}
+%! @sp 2
+%! @strong{This function calls:}
+%!
+%! @end deftypefn
+%@eod:
+
+% Copyright (C) 2011 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 .
+
+% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
+
+if ~isa(dd,'dynDates')
+ error(['dynDates::sort: Input argument ' inputname(dd) ' has to be a dynDates object.'])
+end
+
+if dd.ndat==1
+ return
+end
+
+dd.time = sortrows(dd.time,[1,2]);
+
+%@test:1
+%$ addpath ../matlab
+%$
+%$ % Define some dates
+%$ B1 = '1945Q3';
+%$ B2 = '1950Q2';
+%$ B3 = '1950Q1';
+%$ B4 = '1953Q4';
+%$
+%$ % Define expected results.
+%$ e.time = [1945 3; 1950 1; 1950 2; 1953 4];
+%$ e.freq = 4;
+%$ e.ndat = 4;
+%$
+%$ % Call the tested routine.
+%$ d = dynDates(B1,B2,B3,B4);
+%$ d = sort(d);
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(d.time,e.time);
+%$ t(2) = dyn_assert(d.freq,e.freq);
+%$ t(3) = dyn_assert(d.ndat,e.ndat);
+%$ T = all(t);
+%@eof:1
\ No newline at end of file
diff --git a/matlab/@dynDates/subsref.m b/matlab/@dynDates/subsref.m
index d5e017784..b5408de77 100644
--- a/matlab/@dynDates/subsref.m
+++ b/matlab/@dynDates/subsref.m
@@ -2,7 +2,7 @@ function B = subsref(A,S)
%@info:
%! @deftypefn {Function File} {@var{us} =} subsref (@var{ts},S)
-%! @anchor{@dynDates/subsref}
+%! @anchor{dynDates/subsref}
%! @sp 1
%! Overloads the subsref method for the Dynare dates class (@ref{dynDates}).
%! @sp 2
@@ -50,4 +50,25 @@ function B = subsref(A,S)
% You should have received a copy of the GNU General Public License
% along with Dynare. If not, see .
-B = builtin('subsref', A, S);
\ No newline at end of file
+B = builtin('subsref', A, S);
+
+if isequal(S(1).type,'.')
+ switch S(1).subs
+ case {'time','freq','ndat'} % Public members.
+ B = builtin('subsref', A, S(1));
+ case {'sort'} % Give "dot access" to public methods.
+ if length(S)==1
+ B = feval(S(1).subs,A);
+ else
+ if isequal(S(2).type,'()')
+ B = feval(S(1).subs,A,S(2).subs{:});
+ else
+ error('dynTime::subsref: Something is wrong in your syntax!')
+ end
+ end
+ otherwise
+ error('dynTime::subsref: Unknown public method or member!')
+ end
+else
+ error('dynTime::subsref: Something is wrong in your syntax!')
+end