diff --git a/src/connectivity/ice_transport.cpp b/src/connectivity/ice_transport.cpp
index b025934d09d948c49214ef047a92968c82585158..3c56dad51785848fe2bd80d438c2fca3a035ecc0 100644
--- a/src/connectivity/ice_transport.cpp
+++ b/src/connectivity/ice_transport.cpp
@@ -89,9 +89,9 @@ public:
 
     ~IceLock() { unlock(); }
 
-    void lock() { pj_grp_lock_acquire(lk_); }
+    void lock() { if (lk_) pj_grp_lock_acquire(lk_); }
 
-    void unlock() { pj_grp_lock_release(lk_); }
+    void unlock() { if (lk_) pj_grp_lock_release(lk_); }
 };
 
 class IceTransport::Impl
@@ -1176,6 +1176,8 @@ IceTransport::isStarted() const
 bool
 IceTransport::isRunning() const
 {
+    if (!pimpl_->icest_)
+        return false;
     IceLock lk(pimpl_->icest_);
     return pimpl_->_isRunning();
 }