diff --git a/auth/callbacks.go b/auth/callbacks.go
index 781164bb89e374f166b0ace4d4fb639e7c250d10..3c5862e7a13d901b874b12dc3c274852cf49b13c 100644
--- a/auth/callbacks.go
+++ b/auth/callbacks.go
@@ -42,6 +42,9 @@ func (p *partnerCallbacks) DeletePartnerCallback(partnerId *id.ID) {
 
 // getPartnerCallback returns the Callbacks for the given partnerId
 func (p *partnerCallbacks) getPartnerCallback(partnerId *id.ID) Callbacks {
+	p.RLock()
+	defer p.RUnlock()
+
 	return p.callbacks[*partnerId]
 }
 
diff --git a/auth/receivedConfirm.go b/auth/receivedConfirm.go
index 538329e1b532a1a34d813f866dfb739319c09d3b..bf25d5661743e226f2d7cb2024cff457365ab20c 100644
--- a/auth/receivedConfirm.go
+++ b/auth/receivedConfirm.go
@@ -113,13 +113,11 @@ func (rcs *receivedConfirmService) Process(msg format.Message,
 		Facts:          make([]fact.Fact, 0),
 	}
 
-	authState.partnerCallbacks.RLock()
 	if cb := authState.partnerCallbacks.getPartnerCallback(c.ID); cb != nil {
 		cb.Confirm(c, receptionID, round)
 	} else {
 		authState.callbacks.Confirm(c, receptionID, round)
 	}
-	authState.partnerCallbacks.RUnlock()
 }
 
 func (rcs *receivedConfirmService) String() string {
diff --git a/auth/receivedRequest.go b/auth/receivedRequest.go
index b410b04a3e29cca95dedd8bc14d310507e8bce57..4e3325996a6ca5c558d3531a019c68c92f026bf3 100644
--- a/auth/receivedRequest.go
+++ b/auth/receivedRequest.go
@@ -130,21 +130,17 @@ func (rrs *receivedRequestService) Process(message format.Message,
 			} else if authState.params.ReplayRequests {
 				//if we did not already accept, auto replay the request
 				if rrs.reset {
-					authState.partnerCallbacks.RLock()
 					if cb := authState.partnerCallbacks.getPartnerCallback(c.ID); cb != nil {
 						cb.Reset(c, receptionID, round)
 					} else {
 						authState.callbacks.Reset(c, receptionID, round)
 					}
-					authState.partnerCallbacks.RUnlock()
 				} else {
-					authState.partnerCallbacks.RLock()
 					if cb := authState.partnerCallbacks.getPartnerCallback(c.ID); cb != nil {
 						cb.Request(c, receptionID, round)
 					} else {
 						authState.callbacks.Request(c, receptionID, round)
 					}
-					authState.partnerCallbacks.RUnlock()
 				}
 			}
 			//if not confirm, and params.replay requests is true, we need to replay
@@ -254,8 +250,6 @@ func (rrs *receivedRequestService) Process(message format.Message,
 	}
 
 	// auto-confirm if we should
-	authState.partnerCallbacks.RLock()
-	defer authState.partnerCallbacks.RUnlock()
 	if autoConfirm || reset {
 		_, _ = authState.confirm(c, authState.params.getConfirmTag(reset))
 		//handle callbacks
diff --git a/auth/state.go b/auth/state.go
index 43e1d9735fde5bd0e5c4bbc396ec3ff74727c4b5..fda5ba2c98c08f36be9ae3b58aedcec618ef0b4b 100644
--- a/auth/state.go
+++ b/auth/state.go
@@ -115,13 +115,11 @@ func (s *state) CallAllReceivedRequests() {
 		rr := rrList[i]
 		eph := receptionID.BuildIdentityFromRound(rr.GetContact().ID,
 			rr.GetRound())
-		s.partnerCallbacks.RLock()
 		if cb := s.partnerCallbacks.getPartnerCallback(rr.GetContact().ID); cb != nil {
 			cb.Request(rr.GetContact(), eph, rr.GetRound())
 		} else {
 			s.callbacks.Request(rr.GetContact(), eph, rr.GetRound())
 		}
-		s.partnerCallbacks.RUnlock()
 	}
 }