diff --git a/src/@dseries/chain_.m b/src/@dseries/chain_.m
index 555aeedc990be85b36fd33f6bec0d79699dd07e8..181b28038c7ab4df87df3a7461e01f33c4be81bb 100644
--- a/src/@dseries/chain_.m
+++ b/src/@dseries/chain_.m
@@ -53,10 +53,14 @@ tdx = find(sum(bsxfun(@eq, p.dates.time, o.dates.time(end,:)),2)==2);
 GrowthFactor = p.data(tdx+1:end,:)./p.data(tdx:end-1,:);
 CumulatedGrowthFactors = cumprod(GrowthFactor);
 
+isallzeros = all(~p.data) & all(~o.data);
+
 o.data = [o.data; bsxfun(@times,CumulatedGrowthFactors, o.data(end,:))];
 
 o.dates = firstdate(o):firstdate(o)+nobs(o)-1;
 
+o.data(:,isallzeros) = 0;
+
 for i=1:o.vobs
     if isempty(o.ops{i})
         if noinputname
@@ -73,7 +77,6 @@ for i=1:o.vobs
     end
 end
 
-
 %@test:1
 %$ try
 %$     ts = dseries([1; 2; 3; 4],dates('1950Q1')) ;
@@ -95,4 +98,28 @@ end
 %$ end
 %$
 %$ T = all(t);
-%@eof:1
\ No newline at end of file
+%@eof:1
+
+%@test:2
+%$ try
+%$     ts = dseries([0 1; 0 2; 0 3; 0 4],dates('1950Q1')) ;
+%$     us = dseries([0 3; 0 4; 0 5; 0 6],dates('1950Q3')) ;
+%$     ts.chain_(us);
+%$     t(1) = 1;
+%$ catch
+%$     t(1) = 0;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = dassert(ts.freq,4);
+%$     t(3) = dassert(ts.init.freq,4);
+%$     t(4) = dassert(ts.init.time,[1950, 1]);
+%$     t(5) = dassert(ts.vobs,2);
+%$     t(6) = dassert(ts.nobs,6);
+%$     t(7) = isequal(ts.data(:,2), transpose(1:6));
+%$     t(8) = isequal(ts.data(:,1), zeros(6, 1));
+%$     t(9) = isequal(ts.dates(end), dates('1951Q2'));
+%$ end
+%$
+%$ T = all(t);
+%@eof:2
\ No newline at end of file