diff --git a/goKMS/kms/peers/danetQuantummodule.go b/goKMS/kms/peers/danetQuantummodule.go
index fa1487c1545f18b2be7987aac3553c9ddfc930bb..fd967f6b7399512c104605d3c0a79c0b5c76bfe2 100644
--- a/goKMS/kms/peers/danetQuantummodule.go
+++ b/goKMS/kms/peers/danetQuantummodule.go
@@ -75,6 +75,10 @@ func (qm *DanetQuantumModule) Address() string {
 	return qm.addr
 }
 
+func (qm *DanetQuantumModule) SetActive(active bool) {
+	qm.active = active
+}
+
 func (qm *DanetQuantumModule) IsActive() bool {
 	return qm.active
 }
diff --git a/goKMS/kms/peers/etsi14Quantummodule.go b/goKMS/kms/peers/etsi14Quantummodule.go
index 41119283a6261e0b8299f03e64048df48288887d..b65f378050c34e8b0670898d2de1a9850a30f60e 100644
--- a/goKMS/kms/peers/etsi14Quantummodule.go
+++ b/goKMS/kms/peers/etsi14Quantummodule.go
@@ -151,6 +151,10 @@ func (qm *ETSI014HTTPQuantumModule) MaxKeyFillLevel() uint64 {
 	return qm.maxKeyFillLevel
 }
 
+func (qm *ETSI014HTTPQuantumModule) SetActive(active bool) {
+	qm.active = active
+}
+
 func (qm *ETSI014HTTPQuantumModule) IsActive() bool {
 	return qm.active
 }
diff --git a/goKMS/kms/peers/kmsPeer.go b/goKMS/kms/peers/kmsPeer.go
index caf14e1f4e6c298eff4fdf55555e2739dd581221..3f7e48b5fc1f3b99386e500c5664710fc79ff1d8 100644
--- a/goKMS/kms/peers/kmsPeer.go
+++ b/goKMS/kms/peers/kmsPeer.go
@@ -219,3 +219,21 @@ func (kp *KmsPeer) SetStatus(updateStatus KmsPeerStatus) {
 func (kp *KmsPeer) GetKmsPeerId() uuid.UUID {
 	return kp.peerKmsId
 }
+
+func (kp *KmsPeer) ResetKeyStore(kmsId string) error {
+	switch client := kp.peerClient; {
+	case client.KmsTalkerClient != nil:
+		_, err := client.InterComCapabilities(context.Background(), &pbIC.InterComCapabilitiesRequest{
+			Timestamp:     time.Now().Unix(),
+			KmsId:         kmsId,
+			ResetKeyStore: true,
+		})
+		if err != nil {
+			return err
+		}
+	default:
+		return fmt.Errorf("No active peer client found")
+	}
+
+	return nil
+}
diff --git a/goKMS/kms/peers/quantummodule.go b/goKMS/kms/peers/quantummodule.go
index 166293631135285d0a91e937b3f380226c2a86dd..50147997875a11039074ddbe9b919a3c5e4560da 100644
--- a/goKMS/kms/peers/quantummodule.go
+++ b/goKMS/kms/peers/quantummodule.go
@@ -23,5 +23,6 @@ type QuantumModule interface {
 	Sync() error
 	Address() string
 	IsActive() bool
+	SetActive(bool)
 	Reset()
 }
diff --git a/goKMS/qkdnManager/server.go b/goKMS/qkdnManager/server.go
index ea3235f26d12de7eb710ff9c3ec246c29459d222..405f1a7c3da1badd955bedac41157cde5b6f51b5 100644
--- a/goKMS/qkdnManager/server.go
+++ b/goKMS/qkdnManager/server.go
@@ -220,6 +220,12 @@ func (qs *QkdnManagerServer) handleSetKeyStore(w http.ResponseWriter, r *http.Re
 				return
 			}
 		} else if fetch == "false" {
+			eqm.SetActive(false)
+			if err := peer.ResetKeyStore(qs.kms.GetID().String()); err != nil {
+				eqm.SetActive(true)
+				http.Error(w, fmt.Sprintf("Failed to reset keystore for quantum module of peer: %s", peerID), http.StatusBadRequest)
+				return
+			}
 			eqm.Reset()
 		}
 	}