diff --git a/libs/main/core/piobject.cpp b/libs/main/core/piobject.cpp index 2da587df..b4a09568 100644 --- a/libs/main/core/piobject.cpp +++ b/libs/main/core/piobject.cpp @@ -390,10 +390,10 @@ void PIObject::piDisconnect(PIObject * src, const PIString & sig) { __Connection & cc(src->connections[i]); if (cc.event == sig) { PIObject * dest = cc.dest_o; - if (!dest) { - src->connections[i].destroy(); - src->connections.remove(i); - i--; + src->connections[i].destroy(); + src->connections.remove(i); + i--; + if (dest) { #if !defined(ANDROID) && !defined(MAC_OS) && !defined(FREERTOS) PIMutexLocker _mld(dest->mutex_connect, src != dest); #endif