diff --git a/src/@dseries/merge.m b/src/@dseries/merge.m
index f62979e2c3d35698609d508650687c33119fd289..aab032ee6900dec5d140097281f867b1ec9ef29a 100644
--- a/src/@dseries/merge.m
+++ b/src/@dseries/merge.m
@@ -1,16 +1,19 @@
-function q = merge(o, p) % --*-- Unitary tests --*--
+function q = merge(o, p, rewritewithnans) % --*-- Unitary tests --*--
 
 % Merge method for dseries objects.
 %
 % INPUTS
-% - o  [dseries]
-% - p  [dseries]
+% - o                [dseries]
+% - p                [dseries]
+% - rewritewithnans  [logical]
 %
 % OUTPUTS
-% - q  [dseries]
+% - q                [dseries]
 %
 % REMARKS
-% If dseries objects o and p have common variables, the variables in p take precedence.
+% If dseries objects o and p have common variables, the variables
+% in p take precedence except if rewritewithnans is false and p has
+% nans.
 
 % Copyright © 2013-2019 Dynare Team
 %
@@ -41,6 +44,10 @@ if ~isequal(frequency(o), frequency(p))
     end
 end
 
+if nargin<3
+    rewritewithnans = true;
+end
+
 q = dseries();
 
 [q.name, IBC, ~] = unique([o.name; p.name], 'last');
@@ -91,7 +98,7 @@ elseif firstdate(o) >= firstdate(p)
     end
     Z = [Z1 Z2];
     q.data = Z(:,IBC);
-    if ~isempty(list_of_common_variables)
+    if ~rewritewithnans && ~isempty(list_of_common_variables)
         for i=1:length(iP)
             jO = iO(i);
             jP = iP(i);
@@ -115,7 +122,7 @@ else
     end
     Z = [Z2 Z1];
     q.data = Z(:,IBC);
-    if ~isempty(list_of_common_variables)
+    if ~rewritewithnans && ~isempty(list_of_common_variables)
         for i=1:length(iP)
             jO = iO(i);
             jP = iP(i);
@@ -208,8 +215,30 @@ q.dates = q_init:q_init+(nobs(q)-1);
 %$ if t(1)
 %$    t(2) = dassert(x.vobs,1);
 %$    t(3) = dassert(x.name{1},'u');
+%$    t(4) = dassert(x.data(5:end), ones(4,1)) && all(isnan(x.data(1:4)));
+%$    t(5) = all(x.dates==dates('1989Q1'):dates('1990Q4'));
+%$ end
+%$ T = all(t);
+%@eof:3
+
+%@test:4
+%$ % Define two dseries objects.
+%$ y = dseries(ones(4,1),'1989Q1', 'u');
+%$ z = dseries(ones(4,1),'1990Q1', 'u');
+%$
+%$ % Merge the two objects.
+%$ try
+%$    x = merge(y, z, false);
+%$    t(1) = true;
+%$ catch
+%$    t = false;
+%$ end
+%$
+%$ if t(1)
+%$    t(2) = dassert(x.vobs,1);
+%$    t(3) = dassert(x.name{1},'u');
 %$    t(4) = dassert(x.data, ones(8,1));
 %$    t(5) = all(x.dates==dates('1989Q1'):dates('1990Q4'));
 %$ end
 %$ T = all(t);
-%@eof:3
\ No newline at end of file
+%@eof:4
\ No newline at end of file