Avoid self-deadlocks in MessageCache::replace()