diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 5d6f24a..914931f 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -231,9 +231,85 @@
 PySocket_Err(void)
 {
 #ifdef MS_WINDOWS
-	if (WSAGetLastError()) {
+	int err_no = WSAGetLastError();
+	if (err_no) {
+		static struct { int no; const char *msg; } *msgp, msgs[] = {
+			{ WSAEINTR, "Interrupted system call" },
+			{ WSAEBADF, "Bad file descriptor" },
+			{ WSAEACCES, "Permission denied" },
+			{ WSAEFAULT, "Bad address" },
+			{ WSAEINVAL, "Invalid argument" },
+			{ WSAEMFILE, "Too many open files" },
+			{ WSAEWOULDBLOCK, 
+				"The socket operation could not complete "
+				"without blocking" },
+			{ WSAEINPROGRESS, "Operation now in progress" },
+			{ WSAEALREADY, "Operation already in progress" },
+			{ WSAENOTSOCK, "Socket operation on non-socket" },
+			{ WSAEDESTADDRREQ, "Destination address required" },
+			{ WSAEMSGSIZE, "Message too long" },
+			{ WSAEPROTOTYPE, "Protocol wrong type for socket" },
+			{ WSAENOPROTOOPT, "Protocol not available" },
+			{ WSAEPROTONOSUPPORT, "Protocol not supported" },
+			{ WSAESOCKTNOSUPPORT, "Socket type not supported" },
+			{ WSAEOPNOTSUPP, "Operation not supported" },
+			{ WSAEPFNOSUPPORT, "Protocol family not supported" },
+			{ WSAEAFNOSUPPORT, "Address family not supported" },
+			{ WSAEADDRINUSE, "Address already in use" },
+			{ WSAEADDRNOTAVAIL,
+				"Can't assign requested address" },
+			{ WSAENETDOWN, "Network is down" },
+			{ WSAENETUNREACH, "Network is unreachable" },
+			{ WSAENETRESET, 
+				"Network dropped connection on reset" },
+			{ WSAECONNABORTED, 
+				"Software caused connection abort" },
+			{ WSAECONNRESET, "Connection reset by peer" },
+			{ WSAENOBUFS, "No buffer space available" },
+			{ WSAEISCONN, "Socket is already connected" },
+			{ WSAENOTCONN, "Socket is not connected" },
+			{ WSAESHUTDOWN, "Can't send after socket shutdown" },
+			{ WSAETOOMANYREFS,
+				"Too many references: can't splice" },
+			{ WSAETIMEDOUT, "Operation timed out" },
+			{ WSAECONNREFUSED, "Connection refused" },
+			{ WSAELOOP, "Too many levels of symbolic links" },
+			{ WSAENAMETOOLONG, "File name too long" },
+			{ WSAEHOSTDOWN, "Host is down" },
+			{ WSAEHOSTUNREACH, "No route to host" },
+			{ WSAENOTEMPTY, "Directory not empty" },
+			{ WSAEPROCLIM, "Too many processes" },
+			{ WSAEUSERS, "Too many users" },
+			{ WSAEDQUOT, "Disc quota exceeded" },
+			{ WSAESTALE, "Stale NFS file handle" },
+			{ WSAEREMOTE, "Too many levels of remote in path" },
+			{ WSASYSNOTREADY,
+				"Network subsystem is unvailable" },
+			{ WSAVERNOTSUPPORTED,
+				"WinSock version is not supported" },
+			{ WSANOTINITIALISED, 
+				"Successful WSAStartup() not yet performed" },
+			{ WSAEDISCON, "Graceful shutdown in progress" },
+			/* Resolver errors */
+			{ WSAHOST_NOT_FOUND, "No such host is known" },
+			{ WSATRY_AGAIN, "Host not found, or server failed" },
+			{ WSANO_RECOVERY,
+				"Unexpected server error encountered" },
+			{ WSANO_DATA, "Valid name without requested data" },
+			{ WSANO_ADDRESS, "No address, look for MX record" },
+			{ 0, NULL }
+		};
 		PyObject *v;
-		v = Py_BuildValue("(is)", WSAGetLastError(), "winsock error");
+		const char *msg = "winsock error";
+		
+		for (msgp = msgs; msgp->msg; msgp++) {
+			if (err_no == msgp->no) {
+				msg = msgp->msg;
+				break;
+			}
+		}
+
+		v = Py_BuildValue("(is)", err_no, msg);
 		if (v != NULL) {
 			PyErr_SetObject(PySocket_Error, v);
 			Py_DECREF(v);
