--- a/filterbank/ifilterbank.m
+++ b/filterbank/ifilterbank.m
@@ -67,13 +67,7 @@
 
 l=(0:L-1).'/L;
 for m=1:M
-    if isfield(g{m},'h')
-        g_time=circshift(postpad(g{m}.h,L),g{m}.offset).*...
-               exp(2*pi*1i*round(g{m}.centre*L/2)*l);
-        conjG=conj(fft(g_time));
-    else
-        conjG=conj(circshift(postpad(g{m}.H(L),L),g{m}.foff(L)).*exp(-2*pi*1i*round(g{m}.delay)*l));
-    end;
+    conjG=conj(comp_transferfunction(g{m},L));
     
     if iscell(c)
         for w=1:W                        
@@ -87,41 +81,6 @@
         end;        
     end;
 end;
-
-% Old stuff from before the struct filters
-if 0
-    if iscell(c)
-        
-        for m=1:M
-            for w=1:W
-                
-                G=fft(fir2long(g{m},L));
-                
-                % This repmat cannot be replaced by bsxfun
-                f(:,w)=f(:,w)+ifft(bsxfun(@times,repmat(fft(c{m}(:,w)),a(m),1),conj(G)));
-            end;
-        end;
-        
-    else
-        
-        a=a(1);
-        
-        G=zeros(L,M,assert_classname(c,g{1}));
-        for ii=1:M
-            G(:,ii)=fft(fir2long(g{ii},L));
-        end;
-        
-        f=zeros(L,W,assert_classname(c,g{1}));
-        for w=1:W
-            for m=1:M
-                % This repmat cannot be replaced by bsxfun
-                f(:,w)=f(:,w)+ifft(repmat(fft(c(:,m,w)),a,1).*conj(G(:,m)));
-            end;
-        end;
-        
-    end;
-    
-end;
   
 % Cut or extend f to the correct length, if desired.
 if ~isempty(Ls)