diff --git a/src/conference/handlers/remote-conference-event-handler.cpp b/src/conference/handlers/remote-conference-event-handler.cpp index 8463aaeb4..6df681ccf 100644 --- a/src/conference/handlers/remote-conference-event-handler.cpp +++ b/src/conference/handlers/remote-conference-event-handler.cpp @@ -233,7 +233,12 @@ Object(*new RemoteConferenceEventHandlerPrivate) { RemoteConferenceEventHandler::~RemoteConferenceEventHandler () { L_D(); - d->conf->getCore()->getPrivate()->unregisterListener(d); + + try { + d->conf->getCore()->getPrivate()->unregisterListener(d); + } catch (const bad_weak_ptr &) { + // Unable to unregister listener here. Core is destroyed and the listener doesn't exist. + } if (d->lev) unsubscribe(); diff --git a/src/core/core-accessor.cpp b/src/core/core-accessor.cpp index 26d40ae34..92c26a7c6 100644 --- a/src/core/core-accessor.cpp +++ b/src/core/core-accessor.cpp @@ -56,7 +56,7 @@ shared_ptr CoreAccessor::getCore () const { shared_ptr core = d->core.lock(); if (!core) { lWarning() << "Unable to get valid core instance."; - throw std::bad_weak_ptr(); + throw bad_weak_ptr(); } return core; diff --git a/tester/db/linphone.db b/tester/db/linphone.db index 5f4e2269e..8e7f0f8a8 100644 Binary files a/tester/db/linphone.db and b/tester/db/linphone.db differ