Using the much smarter ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering instead of ABAddressBookCopyArrayOfAllPeople allows to not do the sorting manually, which is probably a huge performance optimization and will avoid some inexplicable (but most probably memory related!) crashes. It also avoids having duplicates when having multiple sources and I prefer no to merge the different sources (like mentioned at http://stackoverflow.com/questions/4067542/getting-merged-unified-entries-from-abaddressbook) for obvious performance reasons.