diff --git a/enzevalos_iphone/TravelHandler.swift b/enzevalos_iphone/TravelHandler.swift
index d4ad387d8bb6630c557d0719010391fe26ebedc6..dacc5e8c80eb2d00d9a579e90cdb42b5b89c3ccd 100644
--- a/enzevalos_iphone/TravelHandler.swift
+++ b/enzevalos_iphone/TravelHandler.swift
@@ -209,7 +209,7 @@ public class TravelHandler {
             if let adr = DataHandler.handler.findMailAddress(adr: c), adr.hasKey, let primaryKey = adr.primaryKey {
                 contactsWithKey.append(c)
                 keyIDs[c] = primaryKey.keyID
-                keys[c] = pgp.exportKey(id: primaryKey.keyID, isSecretkey: false, autocrypt: false)
+                keys[c] = encodeKeys(relatedTo: primaryKey)
             }
         }
         let traveler = Traveler(contacts: contactsWithKey, keys: keys, backupAddress: backupAddress, backupKey: backupKey, canSecurelyBackup: canSecurelyBackup)
@@ -229,6 +229,40 @@ public class TravelHandler {
         return password
     }
     
+    private func encodeKeys(relatedTo key: PersistentKey) -> String {
+        var keys: [String] = []
+        let pgp = SwiftPGP()
+        for relatedKey in key.relatedKeys {
+            if let exportedKey = pgp.exportKey(id: relatedKey.keyID, isSecretkey: false, autocrypt: false) {
+                keys.append(exportedKey)
+            }
+        }
+        if let data = try? JSONEncoder().encode(keys) {
+            return String(data: data, encoding: .utf8) ?? ""
+        }
+        return ""
+    }
+    
+    private func compareKeys(keysFromTraveler: String, storedPrimaryKey: PersistentKey) -> Bool {
+        if let data = keysFromTraveler.data(using: .utf8), let checkedKeys = try? JSONDecoder().decode([String].self, from: data) {
+            var storedKeys: [String] = []
+            let pgp = SwiftPGP()
+            for relatedKey in storedPrimaryKey.relatedKeys {
+                if let exportedKey = pgp.exportKey(id: relatedKey.keyID, isSecretkey: false, autocrypt: false) {
+                    storedKeys.append(exportedKey)
+                }
+            }
+            for storedKey in storedKeys {
+                if !checkedKeys.contains(storedKey) {
+                    return false
+                }
+                return true
+            }
+        }
+        
+        return false
+    }
+    
     /*throw different Errors:
         * all mails could not be sent
         * some mails could not be sent
@@ -249,7 +283,7 @@ public class TravelHandler {
             var keyIDs: [String: String] = [:]
             let pgp = SwiftPGP()
             for c in traveler.contacts {
-                if let adr = DataHandler.handler.findMailAddress(adr: c), adr.hasKey, let primaryKey = adr.primaryKey, pgp.exportKey(id: primaryKey.keyID, isSecretkey: false, autocrypt: false) == travelerKeys[c] {
+                if let adr = DataHandler.handler.findMailAddress(adr: c), adr.hasKey, let primaryKey = adr.primaryKey, let travelerKey = travelerKeys[c], compareKeys(keysFromTraveler: travelerKey, storedPrimaryKey: primaryKey){
                     keyIDs[c] = primaryKey.keyID
                 } else {
                     throw TravelError.corruptData