diff --git a/backup/backup.go b/backup/backup.go
index 68515d18eae12c1fdcd86d0ed777fe35b38e42e5..b8b72f2563844980c21d8d0ebb9309b85c996221 100644
--- a/backup/backup.go
+++ b/backup/backup.go
@@ -215,8 +215,7 @@ func (b *Backup) AddJson(newJson string) {
 	b.mux.Lock()
 	defer b.mux.Unlock()
 
-	currentJson := loadJson(b.store.GetKV())
-	if newJson != currentJson {
+	if newJson != b.jsonParams {
 		b.jsonParams = newJson
 		if err := storeJson(newJson, b.store.GetKV()); err != nil {
 			jww.FATAL.Panicf("Failed to store json: %+v", err)
diff --git a/backup/backup_test.go b/backup/backup_test.go
index a9dade34321234b12f2198196b020ce2c48c02ad..4b6d964b1ea1a681b8ed0d75149a11817355a638 100644
--- a/backup/backup_test.go
+++ b/backup/backup_test.go
@@ -320,6 +320,44 @@ func TestBackup_AddJson(t *testing.T) {
 	}
 }
 
+func TestBackup_AddJson_badJson(t *testing.T) {
+	b := newTestBackup("MySuperSecurePassword", nil, t)
+	s := b.store
+	json := "abc{'i'm a bad json: 'one': 1'''}}"
+
+	expectedCollatedBackup := backup.Backup{
+		RegistrationTimestamp: s.GetUser().RegistrationTimestamp,
+		TransmissionIdentity: backup.TransmissionIdentity{
+			RSASigningPrivateKey: s.GetUser().TransmissionRSA,
+			RegistrarSignature:   s.User().GetTransmissionRegistrationValidationSignature(),
+			Salt:                 s.GetUser().TransmissionSalt,
+			ComputedID:           s.GetUser().TransmissionID,
+		},
+		ReceptionIdentity: backup.ReceptionIdentity{
+			RSASigningPrivateKey: s.GetUser().ReceptionRSA,
+			RegistrarSignature:   s.User().GetReceptionRegistrationValidationSignature(),
+			Salt:                 s.GetUser().ReceptionSalt,
+			ComputedID:           s.GetUser().ReceptionID,
+			DHPrivateKey:         s.GetUser().E2eDhPrivateKey,
+			DHPublicKey:          s.GetUser().E2eDhPublicKey,
+		},
+		UserDiscoveryRegistration: backup.UserDiscoveryRegistration{
+			FactList: s.GetUd().GetFacts(),
+		},
+		Contacts:   backup.Contacts{Identities: s.E2e().GetPartners()},
+		JSONParams: json,
+	}
+
+	b.AddJson(json)
+
+	collatedBackup := b.assembleBackup()
+	if !reflect.DeepEqual(expectedCollatedBackup, collatedBackup) {
+		t.Errorf("Collated backup does not match expected."+
+			"\nexpected: %+v\nreceived: %+v",
+			expectedCollatedBackup, collatedBackup)
+	}
+}
+
 // Tests that Backup.assembleBackup returns the backup.Backup with the expected
 // results.
 func TestBackup_assembleBackup(t *testing.T) {