diff --git a/src/upnp/protocol/natpmp/nat_pmp.cpp b/src/upnp/protocol/natpmp/nat_pmp.cpp
index 633f580..c5e8ce6 100644
--- a/src/upnp/protocol/natpmp/nat_pmp.cpp
+++ b/src/upnp/protocol/natpmp/nat_pmp.cpp
@@ -115,26 +115,26 @@
 void
 NatPmp::terminate(std::condition_variable& cv)
 {
+    if (logger_) logger_->debug("NAT-PMP: Terminate instance {}", fmt::ptr(this));
+
     initialized_ = false;
     observer_ = nullptr;
 
-    {
-        std::lock_guard<std::mutex> lock(natpmpMutex_);
-        shutdownComplete_ = true;
-        cv.notify_one();
-    }
+    std::lock_guard<std::mutex> lock(natpmpMutex_);
+    shutdownComplete_ = true;
+    cv.notify_one();
 }
 
 void
 NatPmp::terminate()
 {
-    std::unique_lock<std::mutex> lk(natpmpMutex_);
     std::condition_variable cv {};
 
     ioContext->dispatch([&] {
         terminate(cv);
     });
 
+    std::unique_lock<std::mutex> lk(natpmpMutex_);
     if (cv.wait_for(lk, std::chrono::seconds(10), [this] { return shutdownComplete_; })) {
         if (logger_) logger_->debug("NAT-PMP: Shutdown completed");
     } else {
diff --git a/src/upnp/protocol/pupnp/pupnp.cpp b/src/upnp/protocol/pupnp/pupnp.cpp
index d1feed9..8db0517 100644
--- a/src/upnp/protocol/pupnp/pupnp.cpp
+++ b/src/upnp/protocol/pupnp/pupnp.cpp
@@ -208,24 +208,21 @@
     // Clear all the lists.
     discoveredIgdList_.clear();
 
-    {
-        std::lock_guard<std::mutex> lock(pupnpMutex_);
-        validIgdList_.clear();
-        shutdownComplete_ = true;
-        cv.notify_one();
-    }
+    std::lock_guard<std::mutex> lock(pupnpMutex_);
+    validIgdList_.clear();
+    shutdownComplete_ = true;
+    cv.notify_one();
 }
 
 void
 PUPnP::terminate()
 {
-    std::unique_lock<std::mutex> lk(pupnpMutex_);
     std::condition_variable cv {};
-
     ioContext->dispatch([&] {
         terminate(cv);
     });
 
+    std::unique_lock<std::mutex> lk(pupnpMutex_);
     if (cv.wait_for(lk, std::chrono::seconds(10), [this] { return shutdownComplete_; })) {
         if (logger_) logger_->debug("PUPnP: Shutdown completed");
     } else {
