diff --git a/src/port/copydir.c b/src/port/copydir.c
index cf3e11f5bd187993a57c23dc2e41a8f320c7c7ec..0927e62fe61f23f99364d3d56986a9ccdbcbd58a 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.35 2010/03/01 00:04:06 stark Exp $
+ *	  $PostgreSQL: pgsql/src/port/copydir.c,v 1.36 2010/03/01 14:54:00 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -221,8 +221,9 @@ fsync_fname(char *fname, bool isdir)
 	int			fd;
 	int 		returncode;
 
-	/* Some OSs require directories to be opened read-only whereas
-	 * other systems don't allow us to fsync files opened read-only so
+	/*
+	 * Some OSs require directories to be opened read-only whereas
+	 * other systems don't allow us to fsync files opened read-only; so
 	 * we need both cases here 
 	 */
 	if (!isdir)
@@ -234,10 +235,11 @@ 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 
-	 * (Windows returns EPERM) 
+	/*
+	 * Some OSs don't allow us to open directories at all 
+	 * (Windows returns EACCES) 
 	 */
-	if (fd < 0 && isdir && (errno == EISDIR || errno == EPERM))
+	if (fd < 0 && isdir && (errno == EISDIR || errno == EACCES))
 		return;
 
 	else if (fd < 0)