Получаване на група за определен контакт от AddressBook iPhone

Получавам име на група за определен контакт в моята адресна книга, но кодът по-долу ми връща грешно име на група, например ако контакт C1 е от група G1, тогава кодът ми дава група G2.
Може ли някой да ми каже какво правя грешно тук?

*Код

    ABAddressBookRef addressBook = ABAddressBookCreate();
    CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
    CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);

    NSInteger recordId;
    ABRecordRef recordGroupID;

    for( int i=0;i< nPeople;i++)
    {
        NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];

        @try {

            NSAutoreleasePool *Pool = [[NSAutoreleasePool alloc] init];

            ABRecordRef ref = CFArrayGetValueAtIndex(allPeople, i);         

            recordId = ABRecordGetRecordID(ref);
            recordGroupID = ABAddressBookGetGroupWithRecordID(addressBook, recordId);

            NSString *grpName;

            if(recordGroupID)
                grpName = (NSString *)ABRecordCopyCompositeName(recordGroupID);
            else
                grpName = @"";

            [dict setObject:grpName forKey:@"GroupName"];

            CFStringRef firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
            CFStringRef lastName = ABRecordCopyValue(ref, kABPersonLastNameProperty);

.....
and so on
}

person Ankur    schedule 24.11.2011    source източник