diff --git a/src/manager.cpp b/src/manager.cpp
index 3c135388058be9d3d554eb05fab4b7de47a60c57..861dc79fee59438dbecfcb0c90103b855e8b36ff 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -888,8 +888,10 @@ Manager::finish() noexcept
         // NOTE: sipLink_->shutdown() is needed because this will perform
         // sipTransportBroker->shutdown(); which will call Manager::instance().sipVoIPLink()
         // so the pointer MUST NOT be resetted at this point
-        pimpl_->sipLink_->shutdown();
-        pimpl_->sipLink_.reset();
+        if (pimpl_->sipLink_) {
+            pimpl_->sipLink_->shutdown();
+            pimpl_->sipLink_.reset();
+        }
 
         pj_shutdown();