diff --git a/fileTransfer/store/received.go b/fileTransfer/store/received.go
index fd715a76e7c4cf127bb9c9897c14432b26b59fe8..1b019553c19aaf37de4f31449ea1f4f85c066bfe 100644
--- a/fileTransfer/store/received.go
+++ b/fileTransfer/store/received.go
@@ -73,7 +73,7 @@ func NewOrLoadReceived(kv *versioned.KV) (*Received, []*ReceivedTransfer, error)
 		tid := tidList[i]
 		s.transfers[tid], err = loadReceivedTransfer(&tid, s.kv)
 		if err != nil {
-			jww.WARN.Print(warnLoadReceivedTransfer, i, len(tidList), tid, err)
+			jww.WARN.Printf(warnLoadReceivedTransfer, i, len(tidList), tid, err)
 			errCount++
 		}
 
diff --git a/ud/confirmFact.go b/ud/confirmFact.go
index 8fdafc24af9a52ac4b664e56dfe99aec3e95996e..ec8d542a142b9d60937e2b6e8f8cdf409881790b 100644
--- a/ud/confirmFact.go
+++ b/ud/confirmFact.go
@@ -41,6 +41,7 @@ func (m *Manager) confirmFact(confirmationID, code string, comm confirmFactComm)
 			"Failed to confirm fact in storage with confirmation ID: %q",
 			confirmationID)
 	}
+	m.user.GetBackupContainer().TriggerBackup("Fact confirmed")
 
 	return nil
 }
diff --git a/ud/interfaces.go b/ud/interfaces.go
index 9439d365c56441356477ee34c76fb5371c032c63..6280beb19e4b813836902b20fbaac5c8d028542b 100644
--- a/ud/interfaces.go
+++ b/ud/interfaces.go
@@ -39,6 +39,7 @@ type udE2e interface {
 	GetRng() *fastRNG.StreamGenerator
 	GetStorage() storage.Session
 	GetTransmissionIdentity() xxdk.TransmissionIdentity
+	GetBackupContainer() *xxdk.Container
 }
 
 // udNetworkStatus is an interface for the xxdk.Cmix's
diff --git a/ud/mockE2e_test.go b/ud/mockE2e_test.go
index e903d7eb59819ddb0445a7167cd4ebfd45c2361a..335f071d934147713026615e90c8fd10bb6a1bb4 100644
--- a/ud/mockE2e_test.go
+++ b/ud/mockE2e_test.go
@@ -46,6 +46,10 @@ type mockE2e struct {
 	key       *rsa.PrivateKey
 }
 
+func (m mockE2e) GetBackupContainer() *xxdk.Container {
+	return &xxdk.Container{}
+}
+
 func (m mockE2e) GetE2E() e2e.Handler {
 	return mockE2eHandler{}
 }
diff --git a/ud/register.go b/ud/register.go
index d70eaf0e2c71e80e859be942e19b3e6aa1196383..0cf1f7ba80fe6e1507873db227d9c83f054da68d 100644
--- a/ud/register.go
+++ b/ud/register.go
@@ -95,6 +95,7 @@ func (m *Manager) register(username string, networkSignature []byte,
 		m.getEventReporter().Report(1, "UserDiscovery", "Registration",
 			fmt.Sprintf("User Registered with UD: %+v",
 				username))
+		m.user.GetBackupContainer().TriggerBackup("User registered with UD")
 	}
 
 	return err
diff --git a/ud/remove.go b/ud/remove.go
index 71db207ed6c263e8024f3df6cd1e56aba3cb8a29..e2a719c70f6e0d40659dbf0b6dbbedb3b327632d 100644
--- a/ud/remove.go
+++ b/ud/remove.go
@@ -26,8 +26,13 @@ import (
 func (m *Manager) RemoveFact(f fact.Fact) error {
 	jww.INFO.Printf("ud.RemoveFact(%s)", f.Stringify())
 	m.factMux.Lock()
-	defer m.factMux.Unlock()
-	return m.removeFact(f, m.comms)
+	err := m.removeFact(f, m.comms)
+	m.factMux.Unlock()
+	if err != nil {
+		return err
+	}
+	m.user.GetBackupContainer().TriggerBackup("Removed fact")
+	return nil
 }
 
 // removeFact is a helper function which contacts the UD service