diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp
index bd7816e446026f4a2432dbeaaab5cb9203a3bacc..03dabe29fd0a483096a4511af67dc9936127a4e7 100644
--- a/src/dhtrunner.cpp
+++ b/src/dhtrunner.cpp
@@ -114,7 +114,9 @@ DhtRunner::run(const SockAddr& local4, const SockAddr& local6, const DhtRunner::
     if (context.logger and dht_via_proxy_) {
         dht_via_proxy_->setLogger(*context.logger);
     }
-    statusCb = std::move(context.statusChangedCallback);
+    if (context.statusChangedCallback) {
+        statusCb = std::move(context.statusChangedCallback);
+    }
     if (context.certificateStore) {
         dht_->setLocalCertificateStore(std::move(context.certificateStore));
         if (dht_via_proxy_)