Index: src/XMPPSCRAMAuth.m ================================================================== --- src/XMPPSCRAMAuth.m +++ src/XMPPSCRAMAuth.m @@ -503,23 +503,24 @@ for (j = 0; j < digestSize; j++) result[j] ^= uOld[j]; for (j = 0; j < i - 1; j++) { - tmp = [OFDataArray dataArray]; + tmp = [OFDataArray new]; [tmp addItems: uOld count: digestSize]; + + [pool releaseObjects]; // releases uOld and previous tmp + [tmp autorelease]; u = [self XMPP_HMACWithKey: str data: tmp]; for (k = 0; k < digestSize; k++) result[k] ^= u[k]; uOld = u; - - [pool releaseObjects]; } ret = [OFDataArray dataArray]; [ret addItems: result count: digestSize];