diff --git a/src/port/copydir.c b/src/port/copydir.c
index 0be12609fecc217727c7c0a65f9d35218f04f736..cf3e11f5bd187993a57c23dc2e41a8f320c7c7ec 100644
--- a/src/port/copydir.c
+++ b/src/port/copydir.c
@@ -11,7 +11,7 @@
  *	as a service.
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/port/copydir.c,v 1.34 2010/02/28 21:05:30 stark Exp $
+ *	  $PostgreSQL: pgsql/src/port/copydir.c,v 1.35 2010/03/01 00:04:06 stark Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -234,8 +234,10 @@ fsync_fname(char *fname, bool isdir)
 						   O_RDONLY | PG_BINARY,
 						   S_IRUSR | S_IWUSR);
 
-	/* Some OSs don't allow us to open directories at all */
-	if (fd < 0 && isdir && errno == EISDIR)
+	/* Some OSs don't allow us to open directories at all 
+	 * (Windows returns EPERM) 
+	 */
+	if (fd < 0 && isdir && (errno == EISDIR || errno == EPERM))
 		return;
 
 	else if (fd < 0)