diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp
index 0b2aef3ee6821d25a38081f9b8f0ff025eed6450..809e91a15cbbf054dab93f0c7be5d9f8d468a901 100644
--- a/src/dhtrunner.cpp
+++ b/src/dhtrunner.cpp
@@ -188,6 +188,10 @@ DhtRunner::run(const SockAddr& local4, const SockAddr& local6, const DhtRunner::
 
 void
 DhtRunner::shutdown(ShutdownCallback cb) {
+    if (not running) {
+        cb();
+        return;
+    }
 #ifdef OPENDHT_PROXY_CLIENT
     if (dht_via_proxy_)
         dht_via_proxy_->shutdown(cb);