diff --git a/src/ITAFilterbankIIR.cpp b/src/ITAFilterbankIIR.cpp
index 11caadfed9b3da87c0c520b3b582a559b21a4589..7aa163afe75e7c1b624b10ea2ae41138fc901a71 100644
--- a/src/ITAFilterbankIIR.cpp
+++ b/src/ITAFilterbankIIR.cpp
@@ -5,6 +5,8 @@
 
 #include <DspFilters/Dsp.h>
 
+const int iOrder = 16;
+
 class CITAFilterbankIIRImpl : public CITAFilterbankIIR
 {
 public:
@@ -12,7 +14,7 @@ public:
 	~CITAFilterbankIIRImpl();
 	void Process( const float* pfInputData, float* pfOutputData );
 private:
-	Dsp::SimpleFilter< Dsp::ChebyshevI::BandStop< 8 >, 1 > m_oFilterInstance;
+	Dsp::Butterworth::BandShelf< iOrder > m_oFilterInstance;
 	float* m_vpfIn[ 1 ];
 	int m_iBlockLength;
 };
@@ -24,11 +26,9 @@ CITAFilterbankIIR* CITAFilterbankIIR::Create( const int iBlockLength, const doub
 
 CITAFilterbankIIRImpl::CITAFilterbankIIRImpl( const int iBlockLength, const double dSampleRate )
 {
-	m_oFilterInstance.setup( 8,    // order
-		dSampleRate,// sample rate
-		900, // center frequency
-		200,  // band width
-		3 );   // ripple dB
+	float fCenterFrequency = 500.0f;
+	float fFrequencyWidth = 20.0f;
+	m_oFilterInstance.setup( iOrder, dSampleRate, fCenterFrequency, fFrequencyWidth, 3.0f );
 
 	m_iBlockLength = iBlockLength;
 }
@@ -41,5 +41,6 @@ void CITAFilterbankIIRImpl::Process( const float* pfInputData, float* pfOutputDa
 {
 	fm_copy( pfOutputData, pfInputData, m_iBlockLength );
 	m_vpfIn[ 0 ] = pfOutputData;
-	m_oFilterInstance.process( m_iBlockLength, m_vpfIn );
+	Dsp::Butterworth::BandShelf::StateType oState;
+	m_oFilterInstance.process( m_iBlockLength, m_vpfIn, oState );
 }
diff --git a/tests/ITADSPFilterbankIIRTest.m b/tests/ITADSPFilterbankIIRTest.m
new file mode 100644
index 0000000000000000000000000000000000000000..eca1c80b6d0f638367c3180534ac57a7f08be274
--- /dev/null
+++ b/tests/ITADSPFilterbankIIRTest.m
@@ -0,0 +1,10 @@
+%% load
+iir_io = ita_merge( ita_read( 'IIR_in.wav' ), ita_read( 'IIR_out.wav' ) );
+
+%% prepare
+iir_io_io_snipped = ita_time_crop( iir_io, [ 1 512 ], 'samples' );
+iir_io_io_snipped.comment = 'IIR Bessel bandpass 8th order';
+iir_io_io_snipped.channelNames = { 'Dirac signal in', 'System response signal after IIR filtering' };
+
+%% plot
+iir_io_io_snipped.pf
\ No newline at end of file