diff --git a/registry/protocol/protocol.go b/registry/protocol/protocol.go
index 4e66e8129edc91079cb45e6ad9eb956f45664a1d..e3af9ba97270c0c5981d1998c3db415f53a69ee7 100644
--- a/registry/protocol/protocol.go
+++ b/registry/protocol/protocol.go
@@ -274,7 +274,7 @@ func (nl *overrideSubscribeListener) doOverrideIfNecessary() {
 		}
 
 		if currentUrl.String() != providerUrl.String() {
-			newRegUrl := nl.originInvoker.GetUrl()
+			newRegUrl := nl.originInvoker.GetUrl().Clone()
 			setProviderUrl(newRegUrl, providerUrl)
 			nl.protocol.reExport(nl.originInvoker, newRegUrl)
 		}