diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index a78533c3890730d78c8f8cab82b5a0de61d6342c..c35762bba9ef7b19418fc374297f4837e0eeb60d 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.110 2002/11/08 20:23:56 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.111 2003/01/25 03:06:04 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1471,7 +1471,7 @@ InstallXLogFileSegment(uint32 log, uint32 seg, char *tmppath,
 					   bool use_lock)
 {
 	char		path[MAXPGPATH];
-	int			fd;
+	struct stat stat_buf;
 
 	XLogFileName(path, log, seg);
 
@@ -1489,10 +1489,8 @@ InstallXLogFileSegment(uint32 log, uint32 seg, char *tmppath,
 	else
 	{
 		/* Find a free slot to put it in */
-		while ((fd = BasicOpenFile(path, O_RDWR | PG_BINARY,
-								   S_IRUSR | S_IWUSR)) >= 0)
+		while (stat(path, &stat_buf) == 0)
 		{
-			close(fd);
 			if (--max_advance < 0)
 			{
 				/* Failed to find a free slot within specified range */