--- a/comp/comp_warpedfreqresponse.m
+++ b/comp/comp_warpedfreqresponse.m
@@ -30,13 +30,15 @@
 bins_lo=(bins_lo-fc)/bw;
 bins_hi=(bins_hi-fc)/bw;
 
-% pos_lo is the same as foff
-pos_lo=floor(scaletofreq(fc-.5*bw)/fs*L);
-pos_hi=ceil(scaletofreq(fc+.5*bw)/fs*L);
+pos_lo=comp_warpedfoff(fc,bw,fs,L,scaletofreq);
+% The "floor" below often cuts away a non-zero sample, but it makes
+% the support stay below the limit needed for the painless case. Same
+% deal 4 lines below.
+pos_hi=floor(scaletofreq(fc+.5*bw)/fs*L);
 
 if pos_hi>L/2
     % Filter is high pass and spilling into the negative frequencies
-    pos_hi=ceil(scaletofreq(fc+.5*bw-nyquest2)/fs*L);    
+    pos_hi=floor(scaletofreq(fc+.5*bw-nyquest2)/fs*L);    
 end;
 
 win_lo=firwin(wintype,bins_lo);
@@ -46,6 +48,20 @@
    
 H=normalize(H,flags.norm);
 
-% Testing
 H=circshift(H,-pos_lo);
-H=H(1:modcent(pos_hi-pos_lo,L));
+upidx=modcent(pos_hi-pos_lo,L);
+
+% ------ Testing ---------------
+if 0
+    bb=circshift(bins_lo,-pos_lo);
+    if bb(1)<-0.5
+        % Adjust bin_lo
+        error('Could do better here.');
+    end;
+    if (bb(upidx+1)<0.5) && (bb(upidx+1)>0)
+        disp('Chopped non-zero sample.');
+        bb(upidx+1)
+    end;
+end;
+
+H=H(1:upidx);