diff --git a/src/@dates/setdiff.m b/src/@dates/setdiff.m
index 1710e3d132a6ddc15f9ae4b442660aebf02fd0f3..71342017eac475fb9febec0800aeeeb44af856e3 100644
--- a/src/@dates/setdiff.m
+++ b/src/@dates/setdiff.m
@@ -1,13 +1,14 @@
-function q = setdiff(o,p) % --*-- Unitary tests --*--
+function [q, io] = setdiff(o,p) % --*-- Unitary tests --*--
 
 % Overloads setdiff function for dates objects.
 %
 % INPUTS 
-% - o [dates]
-% - p [dates]
+% - o  [dates]
+% - p  [dates]
 %
 % OUTPUTS 
-% - q [dates]
+% - q  [dates]   with n elements
+% - io [integer] n*1 vector of integers such that q = o(io)
 %
 % See also pop, remove.
 
@@ -36,26 +37,32 @@ end
 
 if isempty(p)
     q = copy(o);
+    if nargout>1, io = 1:length(q); end
     return
 end
 
 if o==p
     % Return an empty dates object.
     q = dates(o.freq);
+    if nargout>1, io = []; end
     return
 end
 
 if isoctave || matlab_ver_less_than('8.1.0')
-    time = setdiff(o.time,p.time,'rows');
+    if nargout<2
+        time = setdiff(o.time,p.time,'rows');
+    else
+        [time, io] = setdiff(o.time,p.time,'rows');
+    end
 else
-    time = setdiff(o.time,p.time,'rows','legacy');
+    if nargout<2
+        time = setdiff(o.time,p.time,'rows','legacy');
+    else
+        [time, io] = setdiff(o.time,p.time,'rows','legacy');
+    end
 end
 
 q = dates(o.freq);
-if isempty(time)
-    return
-end
-
 q.time = time;
 
 %@test:1