diff --git a/ekms/internal/kms/kms.go b/ekms/internal/kms/kms.go
index 62f0937fa6a37f812fac76f67cc83b78aa51b5f4..91325426a39ef6b72fc47f93f7ad2c2d4fe6ea10 100644
--- a/ekms/internal/kms/kms.go
+++ b/ekms/internal/kms/kms.go
@@ -226,6 +226,14 @@ func (kms *EKMS) AssignForwardingRoute(pId, pHop, nHop string, remoteKMS *Remote
 	kms.routingTable[pathId] = tmpRoute
 	kms.routingTableMutex.Unlock()
 
+	if tmpRoute.RemoteKMS != nil {
+		kms.remoteKMSMappingMutex.Lock()
+		if _, ok := kms.remoteKMSMapping[tmpRoute.RemoteKMS.Id]; !ok {
+			kms.remoteKMSMapping[tmpRoute.RemoteKMS.Id] = tmpRoute.RemoteKMS
+		}
+		kms.remoteKMSMappingMutex.Unlock()
+	}
+
 	if tmpRoute.Previous == nil && tmpRoute.Next != nil && tmpRoute.RemoteKMS != nil {
 		// generate pk key
 		pk, err := crypto.Random256BitKey()
@@ -242,12 +250,6 @@ func (kms *EKMS) AssignForwardingRoute(pId, pHop, nHop string, remoteKMS *Remote
 			return err
 		}
 
-		kms.remoteKMSMappingMutex.Lock()
-		if _, ok := kms.remoteKMSMapping[tmpRoute.RemoteKMS.Id]; !ok {
-			kms.remoteKMSMapping[tmpRoute.RemoteKMS.Id] = tmpRoute.RemoteKMS
-		}
-		kms.remoteKMSMappingMutex.Unlock()
-
 		// update PKStore
 		kms.PKStoreMutex.Lock()
 		keys, ok := kms.PKStore[tmpRoute.RemoteKMS.Id]
diff --git a/ekms/internal/kms/kmsintercom.go b/ekms/internal/kms/kmsintercom.go
index 90c6a60a9702cef912a2b2a7432e8f58b1afb6a6..74905be65fad12d6463b53a54a455155bf59d73a 100644
--- a/ekms/internal/kms/kmsintercom.go
+++ b/ekms/internal/kms/kmsintercom.go
@@ -255,11 +255,6 @@ func (s *kmsTalkerServer) KeyForwarding(ctx context.Context, in *pb.KeyForwardin
 		}, pathId, processId)
 	} else {
 		log.Infof("%s received the final payload: %s", s.eKMS.kmsName, string(decryptedKey))
-		s.eKMS.remoteKMSMappingMutex.Lock()
-		if _, ok := s.eKMS.remoteKMSMapping[route.RemoteKMS.Id]; !ok {
-			s.eKMS.remoteKMSMapping[route.RemoteKMS.Id] = route.RemoteKMS
-		}
-		s.eKMS.remoteKMSMappingMutex.Unlock()
 		s.eKMS.PKStoreMutex.Lock()
 		keys, ok := s.eKMS.PKStore[route.RemoteKMS.Id]
 		if !ok {
diff --git a/ekms/internal/kms/module.go b/ekms/internal/kms/module.go
index 5686549781c77c2546539fe1ca51369e5aa7cfc5..59efcaa336b6292ec22f67e2ebf71b00b03b0634 100644
--- a/ekms/internal/kms/module.go
+++ b/ekms/internal/kms/module.go
@@ -218,7 +218,7 @@ type ETSI014HTTPQuantumModule struct {
 }
 
 func NewETSI014HTTPQuantumModule(addr, kmsId, slaveSAEID, masterSAEID string, master bool) (*ETSI014HTTPQuantumModule, error) {
-	parsedUrl, err := url.Parse("http://" + addr)
+	parsedUrl, err := url.Parse(addr)
 	if err != nil {
 		return nil, err
 	}