Package: x2goclient Version: 4.0.1.0 Note: I'm running a debug build from 4.0.1.0 sources, linked against Qt debug libs. When shutting down a connection (e.g. by closing the x2goclient window), the debug build of Qt gives two diagnostics when two SshMasterConnection objects are destructed: ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 27050c0. Receiver '' (of type 'SshMasterConnection') was created in thread 5d7500", file kernel\qcoreapplication.cpp, line 532 ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 27050c0. Receiver '' (of type 'SshMasterConnection') was created in thread 5d7500", file kernel\qcoreapplication.cpp, line 532 Thread 5d7500 is the main thread. Ignoring the assert messagebox sometimes results in a GP fault. Most of the time the app exits cleanly. I'm not getting the fault at the moment, so I don't have a callstack for you. The callstack from the diagnostic is as follows: QtCored4.dll!qt_message_output QtCored4.dll!qt_message QtCored4.dll!qFatal QtCored4.dll!qt_assert_x QtCored4.dll!QCoreApplicationPrivate::checkReceiverThread QtGuid4.dll!QApplication::notify Line 3845 C++ QtCored4.dll!QCoreApplication::notifyInternal Line 946 + 0x15 bytes C++ QtCored4.dll!QCoreApplication::sendEvent Line 231 + 0x39 bytes C++ QtCored4.dll!QObjectPrivate::setParent_helper Line 1933 + 0x10 bytes C++ QtCored4.dll!QObject::~QObject() Line 939 C++ QtCored4.dll!QThread::~QThread() Line 455 + 0xf bytes C++ > x2goclient.exe!SshMasterConnection::~SshMasterConnection() Line 552 + 0x171 bytes C++ x2goclient.exe!SshMasterConnection::`scalar deleting destructor'() + 0xf bytes C++ x2goclient.exe!SshMasterConnection::channelLoop() Line 1004 + 0x47 bytes C++ for ( int i=reverseTunnelConnections.size()-1; i>=0; --i) { *** delete reverseTunnelConnections[i]; } x2goclient.exe!SshMasterConnection::run() Line 526 C++ QtCored4.dll!QThreadPrivate::start(void * arg=0x01164d08) Line 348 C++ msvcr100d.dll!__beginthreadex() + 0x243 bytes msvcr100d.dll!__beginthreadex() + 0x1d4 bytes kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes Thank you, Gary Kratkin