diff --git a/src/client/conversation-viewer/conversation-web-view.vala b/src/client/conversation-viewer/conversation-web-view.vala index d22a836e..9832efa5 100644 --- a/src/client/conversation-viewer/conversation-web-view.vala +++ b/src/client/conversation-viewer/conversation-web-view.vala @@ -128,7 +128,10 @@ public class ConversationWebView : ClientWebView { callback(); }); ulong cancelled_handler = cancellable.cancelled.connect(() => { - callback(); + // Do this at idle since per the docs for + // GLib.Cancellable.disconnect, disconnecting a + // handler from within a handler causes a deadlock. + GLib.Idle.add(() => callback()); }); controller.search(