diff --git a/src/backend/utils/mmgr/mcxt.c b/src/backend/utils/mmgr/mcxt.c
index 28e9d26a2f902c9f3b141ce1752844de77810ea1..5cf364fa1009bbd11f8e084b8fa642b64a852c03 100644
--- a/src/backend/utils/mmgr/mcxt.c
+++ b/src/backend/utils/mmgr/mcxt.c
@@ -14,7 +14,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/mmgr/mcxt.c,v 1.47 2004/08/08 06:44:32 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/mmgr/mcxt.c,v 1.48 2004/08/29 02:58:50 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -631,7 +631,7 @@ MemoryContextStrdup(MemoryContext context, const char *string)
 }
 
 
-#ifdef WIN32
+#if defined(WIN32) || defined(__CYGWIN__)
 /*
  *	Memory support routines for libpgport on Win32
  *
@@ -649,6 +649,7 @@ pgport_palloc(Size sz)
 	return palloc(sz);
 }
 
+
 char *
 pgport_pstrdup(const char *str)
 {
diff --git a/src/port/dirmod.c b/src/port/dirmod.c
index 1c9ad19c0c56d1e39b4f76f2412ec66f7d65f502..ba01a3d7fe69550297b223aec69c0e33a9b5f042 100644
--- a/src/port/dirmod.c
+++ b/src/port/dirmod.c
@@ -10,7 +10,7 @@
  *	Win32 (NT, Win2k, XP).	replace() doesn't work on Win95/98/Me.
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/port/dirmod.c,v 1.19 2004/08/29 01:44:02 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/port/dirmod.c,v 1.20 2004/08/29 02:58:50 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -31,18 +31,27 @@
 
 #if defined(WIN32) || defined(__CYGWIN__)
 
-
 #include "miscadmin.h"
-#include <winioctl.h>
 
 #undef rename
 #undef unlink
 
+#ifdef __WIN32__
+#include <winioctl.h>
+#else
+/* __CYGWIN__ */
+#include <windows.h>
+#include <w32api/winioctl.h>
+#endif
+
 #ifndef FRONTEND
 /*
  *	Call non-macro versions of palloc, can't reference CurrentMemoryContext
  *	because of DLLIMPORT.
  */
+#undef palloc
+#undef pstrdup
+#undef pfree
 #define palloc(sz)		pgport_palloc(sz)
 #define pstrdup(str)	pgport_pstrdup(str)
 #define pfree(pointer)	pgport_pfree(pointer)