diff --git a/Ring/Ring/Extensions/CNContactVCardSerialization+Helpers.swift b/Ring/Ring/Extensions/CNContactVCardSerialization+Helpers.swift
index bb2c25a2a1e0218243ef50bbf77f6d8dbe17540a..8da2778757eacb0cebc79c0479f47823b64675b8 100644
--- a/Ring/Ring/Extensions/CNContactVCardSerialization+Helpers.swift
+++ b/Ring/Ring/Extensions/CNContactVCardSerialization+Helpers.swift
@@ -30,26 +30,27 @@ enum VCardFields: String {
     case photoJPEG = "PHOTO;TYPE=JPEG;ENCODING=BASE64:"
     case photoPNG  = "PHOTO;TYPE=PNG;ENCODING=BASE64:"
     case end       = "END:VCARD"
+    case name      = "N:"
+    case fullName  = "FN:"
 }
 
 extension CNContactVCardSerialization {
 
     class func dataWithImageAndUUID(from contact: CNContact, andImageCompression compressedSize: Int?) throws -> Data {
 
-        var vcData = try CNContactVCardSerialization.data(with: [contact])
+        // recreate vCard string
+        let beginString = VCardFields.begin.rawValue + "\n"
+        let entryUIDString = VCardFields.uid.rawValue + contact.identifier + "\n"
+        let name = contact.familyName.trimmingCharacters(in: .whitespacesAndNewlines)
+        let firstnameString = VCardFields.name.rawValue + name + "\n"
+        let fullNameString = VCardFields.fullName.rawValue + name + "\n"
+        let endString = VCardFields.end.rawValue
 
-        guard var vcString = String(data: vcData, encoding: String.Encoding.utf8) else {
-            return vcData
-        }
-
-        let entryUID = VCardFields.uid.rawValue + contact.identifier
-        vcString = vcString.replacingOccurrences(of: VCardFields.begin.rawValue,
-                                                 with: (VCardFields.begin.rawValue +
-                                                    "\n" + entryUID))
+        var vCardString = beginString + entryUIDString + firstnameString + fullNameString + endString
 
+        // if contact have an image add it to vCard data
         guard var image = contact.imageData  else {
-            vcData = vcString.data(using: .utf8)!
-            return vcData
+            return vCardString.data(using: .utf8)!
         }
 
         var photofieldName = VCardFields.photoPNG
@@ -57,7 +58,8 @@ extension CNContactVCardSerialization {
         // if we need smallest image first scale it and than compress
         var scaledImage: UIImage?
         if compressedSize != nil {
-            scaledImage =  UIImage(data: image)?.convert(toSize: CGSize(width:50.0, height:50.0), scale: 1)
+            scaledImage =  UIImage(data: image)?
+                .convert(toSize: CGSize(width: 50.0, height: 50.0), scale: 1)
         }
 
         if let scaledImage = scaledImage {
@@ -68,9 +70,9 @@ extension CNContactVCardSerialization {
 
         if let compressionSize = compressedSize, image.count > compressionSize {
             // compress image before sending vCard
-            guard let compressedImage = UIImage(data: image)?.convertToData(ofMaxSize: compressionSize)else {
-                vcData = vcString.data(using: .utf8)!
-                return vcData
+            guard let compressedImage = UIImage(data: image)?
+                .convertToData(ofMaxSize: compressionSize)else {
+                    return vCardString.data(using: .utf8)!
             }
 
             image = compressedImage
@@ -79,10 +81,8 @@ extension CNContactVCardSerialization {
 
         let base64Image =  image.base64EncodedString(options: Data.Base64EncodingOptions.init(rawValue: 0))
         let vcardImageString = photofieldName.rawValue + base64Image + "\n"
-        vcString = vcString.replacingOccurrences(of: VCardFields.end.rawValue, with: (vcardImageString + VCardFields.end.rawValue))
-
-        vcData = vcString.data(using: .utf8)!
+        vCardString = vCardString.replacingOccurrences(of: VCardFields.end.rawValue, with: (vcardImageString + VCardFields.end.rawValue))
 
-        return vcData
+        return vCardString.data(using: .utf8)!
     }
 }