diff --git a/src/include/port/win32.h b/src/include/port/win32.h
index 708d47ab3e573c1229ddd5dce9ab52130a666a3c..c9390d11247096598b2dbc36fb3c0d38348fe754 100644
--- a/src/include/port/win32.h
+++ b/src/include/port/win32.h
@@ -267,11 +267,18 @@ typedef int pid_t;
 
 /*
  * Supplement to <errno.h>.
+ *
+ * We redefine network-related Berkeley error symbols as the corresponding WSA
+ * constants.  This allows elog.c to recognize them as being in the Winsock
+ * error code range and pass them off to pgwin32_socket_strerror(), since
+ * Windows' version of plain strerror() won't cope.  Note that this will break
+ * if these names are used for anything else besides Windows Sockets errors.
+ * See TranslateSocketError() when changing this list.
  */
 #undef EAGAIN
+#define EAGAIN WSAEWOULDBLOCK
 #undef EINTR
 #define EINTR WSAEINTR
-#define EAGAIN WSAEWOULDBLOCK
 #undef EMSGSIZE
 #define EMSGSIZE WSAEMSGSIZE
 #undef EAFNOSUPPORT
@@ -293,26 +300,6 @@ typedef int pid_t;
 #undef EOPNOTSUPP
 #define EOPNOTSUPP WSAEOPNOTSUPP
 
-/*
- * For Microsoft Visual Studio 2010 and above we intentionally redefine
- * the regular Berkeley error constants and set them to the WSA constants.
- * Note that this will break if those constants are used for anything else
- * than Windows Sockets errors.
- */
-#if _MSC_VER >= 1600
-#pragma warning(disable:4005)
-#define EMSGSIZE WSAEMSGSIZE
-#define EAFNOSUPPORT WSAEAFNOSUPPORT
-#define EWOULDBLOCK WSAEWOULDBLOCK
-#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
-#define ECONNRESET WSAECONNRESET
-#define EINPROGRESS WSAEINPROGRESS
-#define ENOBUFS WSAENOBUFS
-#define ECONNREFUSED WSAECONNREFUSED
-#define EOPNOTSUPP WSAEOPNOTSUPP
-#pragma warning(default:4005)
-#endif
-
 /*
  * Extended locale functions with gratuitous underscore prefixes.
  * (These APIs are nevertheless fully documented by Microsoft.)