diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index 009bc90bf5838805c8075fcb672c2d75be40357d..d1b13c1191d4665b003db2b719497cabb42a4462 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -2086,10 +2086,10 @@ bool QAbstractSocket::waitForConnected(int msecs)
 
     if ((timedOut && state() != ConnectedState) || state() == ConnectingState) {
         d->socketError = SocketTimeoutError;
+        setErrorString(tr("Socket operation timed out"));
         d->state = UnconnectedState;
         emit stateChanged(d->state);
         d->resetSocketLayer();
-        setErrorString(tr("Socket operation timed out"));
     }
 
 #if defined (QABSTRACTSOCKET_DEBUG)