In this paper a new IIR algorithm is presented. It is based on a block implementation method for IIR filters. This new algorithm has two stages. First, a circular convolution is used to transform the input into intermediate results. Second, a correction circuit transforms the intermediate result into the correct output. Because the correction circuit uses part of the previous output to correct the current intermediate result, our approach is an overlap-save based algorithm. The multiplicative complexity of this algorithm is shown to be 2 log kn+2 log n+5 real multiplications per output point, for a block of size kn, where n is the order of the filter and k≥2, is a constant. This is less than the counts for other known algorithms. Another advantage of this algorithm is that it can be easily implemented in an optimal manner in hardware.