diff --git a/src/@dseries/subsref.m b/src/@dseries/subsref.m
index fa9ec6eaab53c584b37b265477058258cbda1def..96954946df0c994878a8bcbbc4133db84bdcc2df 100644
--- a/src/@dseries/subsref.m
+++ b/src/@dseries/subsref.m
@@ -88,7 +88,7 @@ switch S(1).type
       case 'length'
         error(['dseries::subsref: we do not support the length operator on ' ...
                'dseries. Please use ''nobs'' or ''vobs''']);
-      case 'save'                                                        
+      case 'save'
         % Save dseries object on disk (default is a mat file).
         B = NaN;
         if isequal(length(S),2)
@@ -219,6 +219,7 @@ switch S(1).type
             B = A;
         end
     elseif isdates(S(1).subs{1}) || isdate(S(1).subs{1})
+        % Select observation(s) with date(s)
         if isdate(S(1).subs{1})
             Dates = dates(S(1).subs{1});
         else
@@ -236,8 +237,27 @@ switch S(1).type
         B = copy(A);
         B.data = B.data(tdx,:);
         B.dates = B.dates(tdx);
-    elseif isvector(S(1).subs{1}) && all(isint(S(1).subs{1}))
-        error('dseries::subsref: It is not possible to select observations with a vector of integers. You have to index with a dates object instead!');
+    elseif isnumeric(S(1).subs{1}) && isequal(ndims(S(1).subs{1}), 2)
+        if isempty(A)
+            % Populate an empty dseries object.
+            if isempty(A.dates)
+                B = copy(A);
+                B.dates = dates('1Y'):dates('1Y')+(rows(S(1).subs{1})-1);
+                B.data = S(1).subs{1};
+                B.name = default_name(columns(B.data));
+                B.tex = name2tex(B.name);
+                B.ops = cell(length(B.name), 1);
+            else
+                B = copy(A);
+                B.dates = B.dates:B.dates+(rows(S(1).subs{1})-1);
+                B.data = S(1).subs{1};
+                B.name = default_name(columns(B.data));
+                B.tex = name2tex(B.name);
+                B.ops = cell(length(B.name), 1);
+            end
+        else
+            error('dseries::subsref: It is not possible to populate a non empty dseries object!');
+        end
     else
         error('dseries::subsref: I have no idea of what you are trying to do!')
     end
@@ -694,4 +714,38 @@ return
  end
 
  T = all(t);
-%@eof:17
\ No newline at end of file
+%@eof:17
+
+%@test:18
+ try
+     tseries = dseries();
+     ts = tseries(ones(10,1));
+     t(1) = true;
+ catch
+     t(1) = false;
+ end
+
+ if t(1)
+     t(2) = ts.dates(1)==dates('1Y');
+     t(3) = ts.dates(10)==dates('10Y');
+ end
+
+ T = all(t);
+%@eof:18
+
+%@test:19
+ try
+     tseries = dseries(dates('2000Q1'));
+     ts = tseries(ones(5,1));
+     t(1) = true;
+ catch
+     t(1) = false;
+ end
+
+ if t(1)
+     t(2) = ts.dates(1)==dates('2000Q1');
+     t(3) = ts.dates(5)==dates('2001Q1');
+ end
+
+ T = all(t);
+%@eof:19
\ No newline at end of file