diff --git a/auth/store/store.go b/auth/store/store.go
index df5535715a833a038d2f738cbe57638d1453eb00..25e22d234ee81639b4c60292a3cf687a56f06424 100644
--- a/auth/store/store.go
+++ b/auth/store/store.go
@@ -244,9 +244,8 @@ func (s *Store) HandleReceivedRequest(partner *id.ID, handler func(*ReceivedRequ
 
 	s.mux.RLock()
 	rr, ok := s.receivedByID[*partner]
-	s.mux.RUnlock()
-
 	if !ok {
+		s.mux.RUnlock()
 		return errors.Errorf("Received request not "+
 			"found: %s", partner)
 	}
@@ -255,29 +254,19 @@ func (s *Store) HandleReceivedRequest(partner *id.ID, handler func(*ReceivedRequ
 	rr.mux.Lock()
 	defer rr.mux.Unlock()
 
-	// Check that the request still exists; it could have been deleted while the
-	// lock was taken
-	s.mux.RLock()
-	_, ok = s.receivedByID[*partner]
 	s.mux.RUnlock()
 
-	if !ok {
-		return errors.Errorf("Received request not "+
-			"found: %s", partner)
-	}
-
 	//run the handler
 	handleErr := handler(rr)
-
 	if handleErr != nil {
 		return errors.WithMessage(handleErr, "Received error from handler")
 	}
 
 	delete(s.receivedByID, *partner)
-	s.save()
+	err := s.save()
 	rr.delete()
 
-	return nil
+	return err
 }
 
 // HandleSentRequest handles the request singly, only a single operator
@@ -311,16 +300,15 @@ func (s *Store) HandleSentRequest(partner *id.ID, handler func(request *SentRequ
 
 	//run the handler
 	handleErr := handler(sr)
-
 	if handleErr != nil {
 		return errors.WithMessage(handleErr, "Received error from handler")
 	}
 
 	delete(s.sentByID, *partner)
-	s.save()
+	err := s.save()
 	sr.delete()
 
-	return nil
+	return err
 }
 
 // GetReceivedRequest returns the contact representing the partner request