By the way, looking at the hcidump output in wireshark I noticed a bug: in some circumstances the vcard has an N: line with only one ";". This is wrong -- every N: line must always have exactly four semicolons.
Which code creates the vcard itself? Is it part of this project or part of the N900 contacts code?