--- fe-secure.c.org	2005-07-05 19:45:19.000000000 +0700
+++ fe-secure.c	2005-07-05 19:55:26.000000000 +0700
@@ -340,9 +340,13 @@
 					char		sebuf[256];
 
 					if (n == -1)
+					{
+						const int errcode = SOCK_ERRNO;
 						printfPQExpBuffer(&conn->errorMessage,
 								libpq_gettext("SSL SYSCALL error: %s\n"),
-						SOCK_STRERROR(SOCK_ERRNO, sebuf, sizeof(sebuf)));
+						SOCK_STRERROR(errcode, sebuf, sizeof(sebuf)));
+						SOCK_ERRNO_SET(errcode);
+					}
 					else
 					{
 						printfPQExpBuffer(&conn->errorMessage,