diff --git a/goKMS/kms/akmsInterface/server/server.go b/goKMS/kms/akmsInterface/server/server.go
index c80409afc2f906cf64c1e8624f9dfb82fea0fcce..3ba4452c5e7a1f15dc6595d5b7ec7bf8398f6f0d 100644
--- a/goKMS/kms/akmsInterface/server/server.go
+++ b/goKMS/kms/akmsInterface/server/server.go
@@ -97,6 +97,9 @@ func ksaReqHandler(eventBus *event.EventBus, receiver *receiver.Receiver, genera
 
 		select {
 		case <-receiverChan:
+			if err := receiver.RemoveReceiver(pathId); err != nil {
+				logrus.Errorf("Failed removing receiver for pathId: %s ; err: %v", pathId, err)
+			}
 		case <-time.After(20 * time.Second):
 			if err := receiver.RemoveReceiver(pathId); err != nil {
 				logrus.Errorf("Failed removing receiver for pathId: %s ; err: %v", pathId, err)
diff --git a/goKMS/kms/kms.go b/goKMS/kms/kms.go
index 702573c894551ad092e6454fa8ed355f159098eb..6f80d75eb3f22beca59af7f5aa2fe9f5aa507fc8 100644
--- a/goKMS/kms/kms.go
+++ b/goKMS/kms/kms.go
@@ -712,6 +712,9 @@ func (kms *KMS) exchangeKeyAfterETSI14GetKeyRequest(receivingCKMSID uuid.UUID, n
 
 	select {
 	case <-receiverChan:
+		if err := kms.receiver.RemoveReceiver(pathID); err != nil {
+			log.Errorf("Failed removing receiver for pathId: %s ; err: %v", pathID, err)
+		}
 	case <-time.After(20 * time.Second):
 		if err := kms.receiver.RemoveReceiver(pathID); err != nil {
 			log.Errorf("Failed removing receiver for pathId: %s ; err: %v", pathID, err)