diff --git a/lib/ssbm.go b/lib/ssbm.go
index acb4f6e6b6d23ddf7a8a87cd3596debb895f9004..92a3fc15a1110415786d72b4c694d9d83997907a 100644
--- a/lib/ssbm.go
+++ b/lib/ssbm.go
@@ -47,8 +47,12 @@ func NewSsbm(rootDir string) *Ssbm {
 func (s *Ssbm) Init(email string, keyId string, selfKey io.Reader) error {
 	os.Mkdir(s.rootDir, 0700)
 	os.Mkdir(s.updatesDir, 0700)
-	s.config.Set("self_email", email)
-	s.config.Set("self_key_id", keyId)
+	if err := s.config.Set("self_email", email); err != nil {
+		log.Printf("error setting config: %s", err)
+	}
+	if err := s.config.Set("self_key_id", keyId); err != nil {
+		log.Printf("error setting config: %s", err)
+	}
 	return s.gpg.Init(keyId, selfKey)
 }
 
@@ -126,14 +130,17 @@ func (s *Ssbm) Save() error {
 		}
 	}
 
-	msg, err := s.gpg.EncryptAndSign(data, recipientKeys)
-	if err != nil {
-		return err
-	}
+	// Encrypt and sign the outgoing update emails (but only if the
+	// recipient list is not empty).
+	if len(recipientKeys) > 0 {
+		msg, err := s.gpg.EncryptAndSign(data, recipientKeys)
+		if err != nil {
+			return err
+		}
 
-	// Send out the update emails.
-	if err := s.mailer.SendMail(selfEmail, recipientEmails, msg); err != nil {
-		return err
+		if err := s.mailer.SendMail(selfEmail, recipientEmails, msg); err != nil {
+			return err
+		}
 	}
 
 	return nil