diff --git "a/dll/win32/msafd/misc/dllmain.c" "b/dll/win32/msafd/misc/dllmain.c" index 0e4dd446674..97330c2b4a0 100644 --- "a/dll/win32/msafd/misc/dllmain.c" +++ "b/dll/win32/msafd/misc/dllmain.c" @@ -2103,7 +2103,11 @@ WSPConnect(SOCKET Handle, Status = IOSB->Status; } - Socket->SharedData->SocketLastError = TranslateNtStatusError(Status); + if (Status == STATUS_LOCAL_DISCONNECT) + Socket->SharedData->SocketLastError = WSAETIMEDOUT; + else + Socket->SharedData->SocketLastError = TranslateNtStatusError(Status); + if (Status != STATUS_SUCCESS) goto Leave; @@ -2174,6 +2178,10 @@ Leave: } } + if (Status == STATUS_LOCAL_DISCONNECT && Errno == 0) + { + Status = STATUS_TIMEOUT; + } return MsafdReturnWithErrno(Status, lpErrno, 0, NULL); }