--- a/mercurial/osutil.c Wed Sep 10 09:41:42 2008 -0400 +++ b/mercurial/osutil.c Wed Sep 10 22:37:07 2008 +0200 @@ -255,7 +255,8 @@ #ifdef AT_SYMLINK_NOFOLLOW dfd = open(path, O_RDONLY); - dir = fdopendir(dfd); + if (dfd != -1) + dir = fdopendir(dfd); #else dir = opendir(path); dfd = -1;