diff -urN qt-everywhere-opensource-src-4.7.4-a/src/network/ssl/qsslsocket.cpp qt-everywhere-opensource-src-4.7.4-b/src/network/ssl/qsslsocket.cpp --- qt-everywhere-opensource-src-4.7.4-a/src/network/ssl/qsslsocket.cpp 2011-08-23 13:02:27.000000000 +0100 +++ qt-everywhere-opensource-src-4.7.4-b/src/network/ssl/qsslsocket.cpp 2011-11-18 21:05:14.485910904 +0000 @@ -730,7 +730,11 @@ #endif Q_D(QSslSocket); if (d->plainSocket) + { d->plainSocket->close(); + delete d->plainSocket; + d->plainSocket = 0; + } QTcpSocket::close(); // must be cleared, reading/writing not possible on closed socket: