diff --git a/matlab/backward/backward_model_irf.m b/matlab/backward/backward_model_irf.m
index 47753d6c522f9c7901d799c073f85eb5c5bf6454..79251ade8e0e1f332144a644af121b1e7b384dad 100644
--- a/matlab/backward/backward_model_irf.m
+++ b/matlab/backward/backward_model_irf.m
@@ -85,9 +85,6 @@ else
             if initialconditionperiod>=shock.dates(1)
                 error('In experiment n°%s, the shock period must follow %s!', string(initialconditionperiod))
             end
-            if shock.nobs>1
-                error('Shocks over multiple periods not implemented yet!')
-            end
         end
     end
 end
@@ -160,10 +157,12 @@ for i=1:length(listofshocks)
     % Add the shock.
     if deterministicshockflag
         shock = listofshocks{i};
-        timid = shock.dates(1)-initialconditionperiod;
+        timid = shock.dates-initialconditionperiod;
         for j=1:shock.vobs
             k = find(strcmp(shock.name{i}, exonames));
-            innovations(timid,k) = innovations(timid,k) + shock.data(1,j);
+            for l=1:length(timid)
+                innovations(timid(l),k) = innovations(timid(l),k) + shock.data(l,j);
+            end
         end
     else
         j = find(strcmp(listofshocks{i}, exonames));