diff --git a/matlab/@dynDate/colon.m b/matlab/@dynDate/colon.m
index ddf155e54d28ba840e71ca0f0e36fea049247f66..6100cdd8a8bc2effc581cea42d4d11c68569f318 100644
--- a/matlab/@dynDate/colon.m
+++ b/matlab/@dynDate/colon.m
@@ -4,7 +4,7 @@ function sp = colon(a,b)
 %! @deftypefn {Function File} {@var{sp} =} colon (@var{a},@var{b})
 %! @anchor{@dynDate/colon}
 %! @sp 1
-%! Overloads the colon operator for the Dynare Dates class (@ref{dynDate}). Creates a @ref{dynTime} object.
+%! Overloads the colon operator for the Dynare Dates class (@ref{dynDate}). Creates a @ref{dynDates} object.
 %! @sp 2
 %! @strong{Inputs}
 %! @sp 1
@@ -19,13 +19,13 @@ function sp = colon(a,b)
 %! @sp 1
 %! @table @ @var
 %! @item c
-%! Dynare Time object instantiated by @ref{dynTime}.
+%! Dynare Dates object instantiated by @ref{dynDates}.
 %! @end table
 %! @sp 2
 %! @strong{This function is called by:}
 %! @sp 2
 %! @strong{This function calls:}
-%! @ref{dynTime}, @ref{@@dynTime/setFreq}, @ref{@@dynTime/setTime}, @ref{@@dynTime/setSize}
+%! @ref{dynDates}, @ref{@@dynDates/setFreq}, @ref{@@dynDates/setTime}, @ref{@@dynDates/setSize}
 %!
 %! @end deftypefn
 %@eod:
@@ -50,7 +50,7 @@ function sp = colon(a,b)
 % Original author: stephane DOT adjemian AT univ DASH lemans DOT fr
 
 if nargin~=2
-    error('dynTime::colon: I need exactly two input arguments!')
+    error('dynDate::colon: I need exactly two input arguments!')
 end
 
 if ~( isa(a,'dynDate') && isa(b,'dynDate'))
@@ -65,22 +65,28 @@ if a>b
     error(['dynDate::colon: ' inputname(1) ' must precede ' inputname(2) '!' ])
 end
 
-if a==b% Time range with only one date.
-    sp = dynTime();
-    sp = sp.setFreq(a.freq);
-    sp = sp.setSize(1);
-    sp = sp.setTime(1,a.time);
-else
-    n = b-a;
-    sp = dynTime();
-    sp = sp.setFreq(a.freq);
-    sp = sp.setSize(n+1);
-    sp = sp.setTime(1,a.time);
-    for t=2:n+1
-        a = +a;
-        sp = sp.setTime(t,a.time);
-    end
+sp = dynDates(a);
+n = b-a;
+for t=1:n
+    a = +a;
+    sp = sp.append(a);
 end
+% $$$ if a==b% Time range with only one date.
+% $$$     sp = dynDates(a);
+% $$$     sp = sp.setFreq(a.freq);
+% $$$     sp = sp.setSize(1);
+% $$$     sp = sp.setTime(1,a.time);
+% $$$ else
+% $$$     n = b-a;
+% $$$     sp = dynDates();
+% $$$     sp = sp.setFreq(a.freq);
+% $$$     sp = sp.setSize(n+1);
+% $$$     sp = sp.setTime(1,a.time);
+% $$$     for t=2:n+1
+% $$$         a = +a;
+% $$$         sp = sp.setTime(t,a.time);
+% $$$     end
+% $$$ end
 
 %@test:1
 %$ % Define two dates
diff --git a/matlab/@dynDates/dynDates.m b/matlab/@dynDates/dynDates.m
index 23cd55523253bdadfc5039742a698a267875b7e5..c772ed7e51912bdff2fed396fec6d2ac2ed84edd 100644
--- a/matlab/@dynDates/dynDates.m
+++ b/matlab/@dynDates/dynDates.m
@@ -66,9 +66,9 @@ function dd = dynDates(varargin)
 
 dd = struct;
 
-dd.ndat = [];
+dd.ndat = 0;
 dd.freq = [];
-dd.time = dynTime();
+dd.time = [];
 
 dd = class(dd,'dynDates');
 
@@ -80,7 +80,7 @@ switch nargin
     if isa(varargin{1},'dynDates')
         % Returns a copy of the input argument
         dd = varargin{1};
-    elseif ischar(varargin{1})
+    elseif ischar(varargin{1}) || isa(varargin{1},'dynDate')
         tmp = dynDate(varargin{1});
         dd.ndat = 1;
         dd.freq = tmp.freq;
diff --git a/matlab/@dynSeries/subsref.m b/matlab/@dynSeries/subsref.m
index 1d9b0ea548b9f9749dc7cabf7d18b3ce306b3f42..11f4180049a617743e6b77bee56dbc9c38af3e2b 100644
--- a/matlab/@dynSeries/subsref.m
+++ b/matlab/@dynSeries/subsref.m
@@ -92,6 +92,8 @@ if length(S)==1 && isequal(S.type,'.')
 end
 
 if length(S)==1 && isequal(S.type,'()')
+    if isa(S.subs{1},'dynTime')
+        
     if ischar(S.subs{1})
         us = dynSeries(S.subs{1});
     else