diff --git a/src/@dates/isequal.m b/src/@dates/isequal.m
index 3922f0356851a7ee3407bccd726e0d80b0b00798..f0d843d0e9c247170d2e94a27e8be3458e3455e5 100644
--- a/src/@dates/isequal.m
+++ b/src/@dates/isequal.m
@@ -1,6 +1,6 @@
 function l = isequal(o, p, fake) % --*-- Unitary tests --*--
 
-% Overloads isequal function for dates objects. Returns true (1) iff o and p have the same elements.
+% Overloads isequal function for dates objects. Returns true true iff o and p have the same elements.
 %
 % INPUTS
 % - o [dates]
@@ -9,7 +9,7 @@ function l = isequal(o, p, fake) % --*-- Unitary tests --*--
 % OUTPUTS
 % - l [logical]
 
-% Copyright (C) 2013-2017 Dynare Team
+% Copyright © 2013-2020 Dynare Team
 %
 % This code is free software: you can redistribute it and/or modify
 % it under the terms of the GNU General Public License as published by
@@ -28,44 +28,82 @@ if ~isa(o,'dates') || ~isa(p,'dates')
     error('dates:isequal:ArgCheck','Both inputs must be dates objects!')
 end
 
-l = isequal(o.freq, p.freq) && isequal(o.time, p.time);
+if o.freq==365
+    l = isequal(o.freq, p.freq) && isequal(o.time(:,1), p.time(:,1));
+else
+    l = isequal(o.freq, p.freq) && isequal(o.time, p.time);
+end
+
+return
 
 %@test:1
-%$ d1 = dates('1938Q1');
-%$ d2 = dates('1938Q1');
-%$ % Test if this object is empty
-%$ t(1) = isequal(d1,d2);
-%$ T = all(t);
+d1 = dates('1938Q1');
+d2 = dates('1938Q1');
+% Test if this object is empty
+try
+    t(1) = isequal(d1, d2);
+catch
+    t(1) = false;
+end
+T = all(t);
 %@eof:1
 
 %@test:2
-%$ d1 = dates('1938Q1');
-%$ d2 = dates('1938Q2');
-%$ % Test if this object is empty
-%$ t(1) = ~isequal(d1,d2);
-%$ T = all(t);
+d1 = dates('1938Q1');
+d2 = dates('1938Q2');
+% Test if this object is empty
+try
+    t(1) = ~isequal(d1,d2);
+catch
+    t(1) = false;
+end
+T = all(t);
 %@eof:2
 
 %@test:3
-%$ d1 = dates('1938Q4');
-%$ d2 = dates('1938M11');
-%$ % Test if this object is empty
-%$ t(1) = ~isequal(d1,d2);
-%$ T = all(t);
+d1 = dates('1938Q4');
+d2 = dates('1938M11');
+% Test if this object is empty
+try
+    t(1) = ~isequal(d1,d2);
+catch
+    t(1) = false;
+end
+T = all(t);
 %@eof:3
 
 %@test:4
-%$ d1 = dates('1938Q4','1938Q3');
-%$ d2 = dates('1938Q3','1938Q1');
-%$ % Test if this object is empty
-%$ t(1) = ~isequal(d1,d2);
-%$ T = all(t);
+d1 = dates('1938Q4','1938Q3');
+d2 = dates('1938Q3','1938Q1');
+% Test if this object is empty
+try
+    t(1) = ~isequal(d1,d2);
+catch
+    t(1) = false;
+end
+T = all(t);
 %@eof:4
 
 %@test:5
-%$ d1 = dates('1938Q4','1938Q3','1938Q2');
-%$ d2 = dates('1938Q3','1938Q1');
-%$ % Test if this object is empty
-%$ t(1) = ~isequal(d1,d2);
-%$ T = all(t);
+d1 = dates('1938Q4','1938Q3','1938Q2');
+d2 = dates('1938Q3','1938Q1');
+% Test if this object is empty
+try
+    t(1) = ~isequal(d1,d2);
+catch
+    t(1) = false;
+end
+T = all(t);
 %@eof:5
+
+%@test:6
+d1 = dates('1938-11-22');
+d2 = dates('1945-09-01');
+% Test if this object is empty
+try
+    t(1) = ~isequal(d1,d2);
+catch
+    t(1) = false;
+end
+T = all(t);
+%@eof:6