I'm trying to load image date for person entries in the shared ABAddressBook.  In particular, I'm calling 
-[ABPerson beginLoadingImageDataForClient:]
and passing as the argument an object which adopts ABImageClient and implements
-[<ABPersonClient> consumeImageData:forTag:]
The approach I'm using works fine on Mountain Lion, but fails on Snow Leopard.  In particular, -consumeImageData:forTag: never gets called.  
The following sample command line program demonstrates my approach:
#import <Foundation/Foundation.h>
#import <AddressBook/AddressBook.h>
@interface ImageConsumer : NSObject <ABImageClient>
@property (nonatomic, strong) NSMutableDictionary *imagesForNumbers;
@end
@implementation ImageConsumer
- (id)init
{
    self = [super init];
    if (self) {
        self.imagesForNumbers = [NSMutableDictionary dictionary];
    }
    return self;
}
- (void)consumeImageData:(NSData *)data forTag:(NSInteger)tag
{
    [self.imagesForNumbers setObject:data forKey:[NSNumber numberWithInteger:tag]];
    NSLog(@"%s: loaded data of length %zu for tag %zd", __PRETTY_FUNCTION__, data.length, tag);
}
@end
int main(int argc, const char * argv[])
{
    @autoreleasepool {
        NSArray *persons = [[ABAddressBook sharedAddressBook] people];
        ImageConsumer *imageConsumer = [[ImageConsumer alloc] init];
        for (ABPerson *person in persons) {
            NSInteger loadingKey = [person beginLoadingImageDataForClient:imageConsumer];
            NSLog(@"requested data person named %@ %@ and received tag %zd", [person valueForProperty:kABFirstNameProperty], [person valueForProperty:kABLastNameProperty], loadingKey);
        }
        [[NSRunLoop mainRunLoop] run];
    }
    return 0;
}
Am I misusing the ABAddressBook calls for loading image data for instances of ABPerson?  Is this a bug with ABAddressBook on Snow Leopard?  If so, is there a work-around?