diff --git a/Dns64Configuration.cpp b/Dns64Configuration.cpp
index 5b3849b..115fc51 100644
--- a/Dns64Configuration.cpp
+++ b/Dns64Configuration.cpp
@@ -139,7 +139,8 @@
     if (cfg.prefix64.length() == 0) {
         dw.println("%s: no prefix yet discovered", kLabel);
     } else {
-        dw.println("%s: discovered prefix %s", kLabel, cfg.prefix64.toString().c_str());
+        dw.println("%s: %s prefix %s", kLabel, cfg.isFromPrefixDiscovery() ? "discovered" : "set",
+                   cfg.prefix64.toString().c_str());
     }
 }
 
@@ -238,8 +239,8 @@
     reportNat64PrefixStatus(cfg.netId, PREFIX_ADDED, cfg.prefix64);
 }
 
-int Dns64Configuration::setPrefix64(unsigned netId, const IPPrefix* pfx) {
-    if (pfx->isUninitialized() || pfx->family() != AF_INET6 || pfx->length() != 96) {
+int Dns64Configuration::setPrefix64(unsigned netId, const IPPrefix& pfx) {
+    if (pfx.isUninitialized() || pfx.family() != AF_INET6 || pfx.length() != 96) {
         return -EINVAL;
     }
 
@@ -256,7 +257,7 @@
     }
 
     Dns64Config cfg(kNoDiscoveryId, netId);
-    cfg.prefix64 = *pfx;
+    cfg.prefix64 = pfx;
     mDns64Configs.emplace(std::make_pair(netId, cfg));
 
     return 0;
diff --git a/Dns64Configuration.h b/Dns64Configuration.h
index c06a6c1..387de78 100644
--- a/Dns64Configuration.h
+++ b/Dns64Configuration.h
@@ -82,8 +82,8 @@
     void stopPrefixDiscovery(unsigned netId);
     netdutils::IPPrefix getPrefix64(unsigned netId) const;
 
-    int setPrefix64(unsigned netId, const netdutils::IPPrefix* pfx);
-    int clearPrefix64(unsigned netId);
+    int setPrefix64(unsigned netId, const netdutils::IPPrefix& pfx) EXCLUDES(mMutex);
+    int clearPrefix64(unsigned netId) EXCLUDES(mMutex);
 
     void dump(netdutils::DumpWriter& dw, unsigned netId);
 
diff --git a/DnsResolverService.cpp b/DnsResolverService.cpp
index 6f63333..becda28 100644
--- a/DnsResolverService.cpp
+++ b/DnsResolverService.cpp
@@ -253,7 +253,7 @@
         return statusFromErrcode(-EINVAL);
     }
 
-    return statusFromErrcode(gDnsResolv->resolverCtrl.setPrefix64(netId, &prefix));
+    return statusFromErrcode(gDnsResolv->resolverCtrl.setPrefix64(netId, prefix));
 }
 
 ::ndk::ScopedAStatus DnsResolverService::setLogSeverity(int32_t logSeverity) {
diff --git a/ResolverController.h b/ResolverController.h
index 06c0bbc..e81e1ed 100644
--- a/ResolverController.h
+++ b/ResolverController.h
@@ -54,7 +54,7 @@
     void stopPrefix64Discovery(int32_t netId);
 
     // Set or clear a NAT64 prefix discovered by other sources (e.g., RA).
-    int setPrefix64(unsigned netId, const netdutils::IPPrefix* prefix) {
+    int setPrefix64(unsigned netId, const netdutils::IPPrefix& prefix) {
         return mDns64Configuration.setPrefix64(netId, prefix);
     }
 
