@finally { [pool release]; } is a bad idea when throwing exceptions.
The exception is released before it is ever caught.