diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 5f24919..d688499 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -130,7 +130,11 @@ PgStat_MsgBgWriter BgWriterStats;
  * Local data
  * ----------
  */
+#ifndef WIN32
 NON_EXEC_STATIC int pgStatSock = -1;
+#else
+NON_EXEC_STATIC SOCKET pgStatSock = -1;
+#endif
 
 static struct sockaddr_storage pgStatAddr;
 
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 3678ea4..c2ad0a5 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -4404,7 +4408,11 @@ extern slock_t *ProcStructLock;
 extern PROC_HDR *ProcGlobal;
 extern PGPROC *AuxiliaryProcs;
 extern PMSignalData *PMSignalState;
+#ifndef WIN32
 extern int	pgStatSock;
+#else
+extern SOCKET pgStatSock;
+#endif
 
 #ifndef WIN32
 #define write_inheritable_socket(dest, src, childpid) ((*(dest) = (src)), true)
diff --git a/src/include/libpq/libpq-be.h b/src/include/libpq/libpq-be.h
index c13c631..121d63a 100644
--- a/src/include/libpq/libpq-be.h
+++ b/src/include/libpq/libpq-be.h
@@ -103,7 +103,11 @@ typedef struct
 
 typedef struct Port
 {
+#ifndef WIN32
 	int			sock;			/* File descriptor */
+#else
+	SOCKET		sock;			/* Win32 requires SOCKET datatype */
+#endif
 	ProtocolVersion proto;		/* FE/BE protocol version */
 	SockAddr	laddr;			/* local addr (postmaster) */
 	SockAddr	raddr;			/* remote addr (client) */
