diff --git a/api/client.go b/api/client.go
index fa635f2e24c3255a39c0f3216bfbd681037341e8..83ea0d3828bdae85a2eddbe5f957fe6c3b333aea 100644
--- a/api/client.go
+++ b/api/client.go
@@ -564,7 +564,7 @@ func (c *Client) DeleteContact(partnerId *id.ID) error  {
 		return err
 	}
 	c.storage.Conversations().Delete(partnerId)
-		return nil
+	return nil
 }
 
 // ----- Utility Functions -----
diff --git a/storage/auth/store.go b/storage/auth/store.go
index c8116571a3c77b3a8434cafe496fd81b95509c2c..3b74b7d1babbd39816e71523b235722348054a04 100644
--- a/storage/auth/store.go
+++ b/storage/auth/store.go
@@ -92,7 +92,7 @@ func LoadStore(kv *versioned.KV, grp *cyclic.Group, privKeys []*cyclic.Int) (*St
 		return nil, errors.WithMessagef(err, "Failed to "+
 			"unmarshal SentRequestMap")
 	}
-	jww.DEBUG.Printf("Loading Auth Store for %d contact(s)", len(requestList))
+	jww.TRACE.Printf("%d found when loading AuthStore", len(requestList))
 	for _, rDisk := range requestList {
 		r := &request{
 			rt: RequestType(rDisk.T),
@@ -118,7 +118,6 @@ func LoadStore(kv *versioned.KV, grp *cyclic.Group, privKeys []*cyclic.Int) (*St
 				PrivKey: nil,
 				Request: r,
 			}
-			jww.DEBUG.Printf("Loaded send request for %s", sr.partner)
 			rid = sr.partner
 			r.sent = sr
 
@@ -127,7 +126,6 @@ func LoadStore(kv *versioned.KV, grp *cyclic.Group, privKeys []*cyclic.Int) (*St
 			if err != nil {
 				jww.FATAL.Panicf("Failed to load stored contact for: %+v", err)
 			}
-			jww.INFO.Printf("Loaded send request for %s", c.ID)
 
 			rid = c.ID
 			r.receive = &c
diff --git a/storage/e2e/manager.go b/storage/e2e/manager.go
index 6434f5283e342d2c1bc36a26006f24d6798f0bb1..a978beeae77c2fffa723c15f495ebf1fa4925c5c 100644
--- a/storage/e2e/manager.go
+++ b/storage/e2e/manager.go
@@ -113,20 +113,14 @@ func loadManager(ctx *context, kv *versioned.KV, partnerID *id.ID) (*Manager, er
 }
 
 // clearManager removes the relationship between the partner
-// and deletes the Send and Receive sessions
+// and deletes the Send and Receive sessions. This includes the
+// sessions and the key vectors
 func clearManager(m *Manager, kv *versioned.KV) error {
 	kv = kv.Prefix(fmt.Sprintf(managerPrefix, m.partner))
 
-	if err := DeleteRelationship(m, Send); err != nil {
+	if err := DeleteRelationship(m); err != nil {
 		return errors.WithMessage(err,
-			"Failed to delete remove partner key relationship due to failure to " +
-			"delete the Send session buffer")
-	}
-
-	if err := DeleteRelationship(m, Receive); err != nil {
-		return errors.WithMessage(err,
-			"Failed to delete remove partner key relationship due to failure to " +
-				"delete the Receive session buffer")
+			"Failed to delete relationship")
 	}
 
 	if err := utility.DeleteCyclicKey(m.kv, originPartnerPubKey); err != nil {
diff --git a/storage/e2e/relationship.go b/storage/e2e/relationship.go
index 2006cb451a4d70b3c41772b95bd98803ae6dc5c7..e0e7723d6c332c36a1ac9ceae0753e3174da4ba6 100644
--- a/storage/e2e/relationship.go
+++ b/storage/e2e/relationship.go
@@ -84,14 +84,31 @@ func NewRelationship(manager *Manager, t RelationshipType,
 	return r
 }
 
-// DeleteRelationship is a function which removes
-// the relationship and relationship fingerprint from the store
-func DeleteRelationship(manager *Manager, t RelationshipType) error {
-	kv := manager.kv.Prefix(t.prefix())
-	if err := deleteRelationshipFingerprint(kv); err != nil {
+// DeleteRelationship removes all relationship and
+// relationship adjacent information from storage
+func DeleteRelationship(manager *Manager) error {
+
+	// Delete the send information
+	sendKv := manager.kv.Prefix(Send.prefix())
+	manager.send.Delete()
+	if err := deleteRelationshipFingerprint(sendKv); err != nil {
+		return err
+	}
+	if err := sendKv.Delete(relationshipKey, currentRelationshipVersion); err != nil {
+		return errors.Errorf("Could not delete send relationship: %v", err)
+	}
+
+	// Delete the receive information
+	receiveKv := manager.kv.Prefix(Receive.prefix())
+	manager.receive.Delete()
+	if err := deleteRelationshipFingerprint(receiveKv); err != nil {
 		return err
 	}
-	return kv.Delete(relationshipKey, currentRelationshipVersion)
+	if err := receiveKv.Delete(relationshipKey, currentRelationshipVersion); err != nil {
+		return errors.Errorf("Could not delete receive relationship: %v", err)
+	}
+
+	return nil
 }
 
 func LoadRelationship(manager *Manager, t RelationshipType) (*relationship, error) {
@@ -176,6 +193,16 @@ func (r *relationship) unmarshal(b []byte) error {
 	return nil
 }
 
+func (r *relationship) Delete() {
+	r.mux.Lock()
+	defer r.mux.Unlock()
+	for _, s := range r.sessions {
+		delete(r.sessionByID, s.GetID())
+		s.Delete()
+	}
+
+}
+
 func (r *relationship) AddSession(myPrivKey, partnerPubKey, baseKey *cyclic.Int,
 	trigger SessionID, negotiationStatus Negotiation,
 	e2eParams params.E2ESessionParams) *Session {
diff --git a/storage/e2e/relationshipFingerprint.go b/storage/e2e/relationshipFingerprint.go
index 367dabdfd9a8e3e5debbac08f4f68ed7f9c3ab13..29b80896dfc078b8ab1a7cefa348a7860498aec2 100644
--- a/storage/e2e/relationshipFingerprint.go
+++ b/storage/e2e/relationshipFingerprint.go
@@ -59,7 +59,7 @@ func loadRelationshipFingerprint(kv *versioned.KV) []byte {
 }
 
 // deleteRelationshipFingerprint is a helper function which deletes a fingerprint from store
-func deleteRelationshipFingerprint(kv *versioned.KV) error  {
+func deleteRelationshipFingerprint(kv *versioned.KV) error {
 	return kv.Delete(relationshipFingerprintKey,
 		currentRelationshipVersion)
 }
diff --git a/storage/e2e/relationship_test.go b/storage/e2e/relationship_test.go
index 7ac35b3d429909531492a05cfe155dd9af6adaf4..1ad211fcd55a389e758711a22ac8bcff24fdd76e 100644
--- a/storage/e2e/relationship_test.go
+++ b/storage/e2e/relationship_test.go
@@ -71,14 +71,20 @@ func TestLoadRelationship(t *testing.T) {
 // Shows that a deleted Relationship can no longer be pulled from store
 func TestDeleteRelationship(t *testing.T) {
 	mgr := makeTestRelationshipManager(t)
-	sb := NewRelationship(mgr, Send, params.GetDefaultE2ESessionParams())
 
-	err := sb.save()
-	if err != nil {
+	// Generate send relationship
+	mgr.send = NewRelationship(mgr, Send, params.GetDefaultE2ESessionParams())
+	if err := mgr.send.save(); err != nil {
+		t.Fatal(err)
+	}
+
+	// Generate receive relationship
+	mgr.receive = NewRelationship(mgr, Receive, params.GetDefaultE2ESessionParams())
+	if err := mgr.receive.save(); err != nil {
 		t.Fatal(err)
 	}
 
-	err = DeleteRelationship(mgr, Send)
+	err := DeleteRelationship(mgr)
 	if err != nil {
 		t.Fatalf("DeleteRelationship error: Could not delete manager: %v", err)
 	}
@@ -87,10 +93,15 @@ func TestDeleteRelationship(t *testing.T) {
 	if err == nil {
 		t.Fatalf("DeleteRelationship error: Should not have loaded deleted relationship: %v", err)
 	}
+
+	_, err = LoadRelationship(mgr, Receive)
+	if err == nil {
+		t.Fatalf("DeleteRelationship error: Should not have loaded deleted relationship: %v", err)
+	}
 }
 
 // Shows that a deleted relationship fingerprint can no longer be pulled from store
-func TestRelationship_deleteRelationshipFingerprint(t *testing.T)  {
+func TestRelationship_deleteRelationshipFingerprint(t *testing.T) {
 	defer func() {
 		if r := recover(); r == nil {
 			t.Fatalf("deleteRelationshipFingerprint error: " +
@@ -108,7 +119,7 @@ func TestRelationship_deleteRelationshipFingerprint(t *testing.T)  {
 
 	err = deleteRelationshipFingerprint(mgr.kv)
 	if err != nil {
-		t.Fatalf("deleteRelationshipFingerprint error: " +
+		t.Fatalf("deleteRelationshipFingerprint error: "+
 			"Could not delete fingerprint: %v", err)
 	}
 
diff --git a/storage/e2e/session.go b/storage/e2e/session.go
index 6e85d873e36768d2372b5f713c45527625233c3c..9f74ebf35efe310214237e6da36f9f4029c872be 100644
--- a/storage/e2e/session.go
+++ b/storage/e2e/session.go
@@ -201,7 +201,8 @@ func (s *Session) save() error {
 
 /*METHODS*/
 // Done all unused key fingerprints
-// delete this session and its key states from the storage
+
+// Delete removes this session and its key states from the storage
 func (s *Session) Delete() {
 	s.mux.Lock()
 	defer s.mux.Unlock()
@@ -221,7 +222,7 @@ func (s *Session) Delete() {
 	}
 }
 
-//Gets the base key.
+// GetBaseKey retrieves the base key.
 func (s *Session) GetBaseKey() *cyclic.Int {
 	// no lock is needed because this cannot be edited
 	return s.baseKey.DeepCopy()
diff --git a/storage/e2e/store_test.go b/storage/e2e/store_test.go
index 82a536165e8b38f30d713c4d4b151c01dc6b27eb..016184b58e803a9b92d763be3c880b8a1b4dc05e 100644
--- a/storage/e2e/store_test.go
+++ b/storage/e2e/store_test.go
@@ -132,7 +132,7 @@ func TestStore_DeletePartner(t *testing.T) {
 	}
 
 	_, err = s.GetPartner(partnerID)
-	if err== nil {
+	if err == nil {
 		t.Errorf("DeletePartner error: Should not be able to pull deleted partner from store")
 	}