On Fri, Feb 11, 2011 at 3:21 PM, <axeld@xxxxxxxxxxxxxxxx> wrote: > while (InterfaceAddress* address = fAddresses.RemoveHead()) { > + locker.Unlock(); > + > address->ReleaseReference(); > + if (address->LocalIsDefined()) { > + MutexLocker hashLocker(sHashLock); > + sAddressTable.Remove(address); > + } > + > + locker.Lock(); Shouldn't you release the reference after doing the hash removal? Or does something else still hold a ref to the address in the meantime? Regards, Rene