diff --git a/doc/dynare.texi b/doc/dynare.texi
index 74da5d5ccdaa21e095046c2e14d7ac990ebfd0b0..ba6d7bcc834448e7ce1088df3d763447c902d882 100644
--- a/doc/dynare.texi
+++ b/doc/dynare.texi
@@ -9023,6 +9023,26 @@ ans = <dates: 1950Q3, 1950Q4, 1960Q1>
 
 @sp 1
 
+@deftypefn{dates} {@var{C} =} ne (@var{A}, @var{B})
+
+Overloads the Matlab/Octave @code{ne} (not equal, @code{~=}) operator. @dates objects @var{A} and @var{B} must have the  same number of elements (say, @code{n}) or one of the inputs must be a single element @dates object. The returned argument is a @code{n} by @code{1} vector of zeros and ones. The i-th element of @var{C} is equal to @code{1} if and only if the dates @code{A(i)} and @code{B(i)} are different.
+
+@examplehead
+@example
+>> A = dates('1950Q1','1951Q2');
+>> B = dates('1950Q1','1950Q2');
+>> A~=B
+
+ans =
+
+     0
+     1
+@end example
+
+@end deftypefn
+
+@sp 1
+
 @deftypefn{dates} {@var{C} =} plus (@var{A}, @var{B})
 
 Overloads the Matlab/Octave @code{plus} operator (@code{+}). If both input arguments are @dates objects, then the method combines A and B without removing repetitions. If @var{B} is a vector of integers, the @code{plus} operator shifts the @dates object by @var{B} periods forward.
diff --git a/matlab/@dates/ne.m b/matlab/@dates/ne.m
new file mode 100644
index 0000000000000000000000000000000000000000..a5bab143b67cbe3b761f25a9bcd1b26adb4f2111
--- /dev/null
+++ b/matlab/@dates/ne.m
@@ -0,0 +1,102 @@
+function C = ne(A,B) % --*-- Unitary tests --*--
+
+% Overloads ~= operator for dates objects.
+%
+% INPUTS 
+%  o A    dates object with n or 1 elements.
+%  o B    dates object with n or 1 elements.
+%
+% OUTPUTS 
+%  o C    column vector of max(n,1) elements (zeros or ones).
+
+% Copyright (C) 2013 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 <http://www.gnu.org/licenses/>.
+
+if ~isequal(nargin,2)
+    error('dates::ne: I need exactly two input arguments!')
+end
+
+if ~isdates(A) || ~isdates(B)
+    error(['dates::ne: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' have to be dates objects!'])
+end
+
+if ~isequal(A.freq,B.freq)
+    C = 0;
+    return
+end
+
+if isequal(A.ndat, B.ndat)
+    C = transpose(any(transpose(ne(A.time,B.time))));
+else
+    if isequal(A.ndat,1) || isequal(B.ndat,1)
+        C = transpose(any(transpose(bsxfun(@ne,A.time,B.time))));
+    else
+        C = 0;
+    end
+end
+
+%@test:1
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1','1950Q2','1950Q3','1950Q4') ;
+%$ d2 = dates('1960Q1','1960Q2','1960Q3','1960Q4') ;
+%$ d3 = dates('1950Q1','1960Q2','1950Q3','1960Q4') ;
+%$
+%$ % Call the tested routine.
+%$ t1 = d1~=d1;
+%$ t2 = d1~=d2;
+%$ t3 = d1~=d3;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(t1,zeros(4,1));
+%$ t(2) = dyn_assert(t2,ones(4,1));
+%$ t(3) = dyn_assert(t3,[0; 1; 0; 1]);
+%$ T = all(t);
+%@eof:1
+
+%@test:2
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1') ;
+%$ d2 = dates('1960Q1') ;
+%$ d3 = dates('1960Q1') ;
+%$
+%$ % Call the tested routine.
+%$ t1 = d1~=d1;
+%$ t2 = d1~=d2;
+%$ t3 = d1~=d3;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(t1,0);
+%$ t(2) = dyn_assert(t2,1);
+%$ t(3) = dyn_assert(t3,1);
+%$ T = all(t);
+%@eof:2
+
+%@test:3
+%$ % Define some dates objects
+%$ d1 = dates('1950Q1','1950Q2','1950Q3','1950Q4') ;
+%$ d2 = dates('1950Q2') ;
+%$ d3 = dates('1970Q1') ;
+%$
+%$ % Call the tested routine.
+%$ t1 = d1~=d2;
+%$ t2 = d1~=d3;
+%$
+%$ % Check the results.
+%$ t(1) = dyn_assert(t1,[1; 0; 1; 1]);
+%$ t(2) = dyn_assert(t2,ones(4,1));
+%$ T = all(t);
+%@eof:3