Index: src/OFDNSResolver.m ================================================================== --- src/OFDNSResolver.m +++ src/OFDNSResolver.m @@ -870,14 +870,23 @@ OFDNSResponse *response = cacheEntry.secondObject; if (!containsExpiredRecord(response.answerRecords, age) && !containsExpiredRecord(response.authorityRecords, age) && !containsExpiredRecord(response.additionalRecords, age)) { - [delegate resolver: self - didPerformQuery: query - response: response - exception: nil]; + OFTimer *timer = [OFTimer + timerWithTimeInterval: 0 + target: delegate + selector: @selector(resolver: + didPerformQuery:response: + exception:) + object: self + object: query + object: response + object: nil + repeats: false]; + [[OFRunLoop currentRunLoop] addTimer: timer + forMode: runLoopMode]; objc_autoreleasePoolPop(pool); return; } }