--- lib/fts.c_ 2005-10-10 18:04:57.000000000 +0200 +++ lib/fts.c 2005-10-10 18:05:49.000000000 +0200 @@ -610,6 +610,7 @@ if (p->fts_level == FTS_ROOTLEVEL) { if (FCHDIR(sp, sp->fts_rfd)) { SET(FTS_STOP); + sp->fts_cur = p; return (NULL); } fts_load(sp, p); @@ -671,6 +672,7 @@ if (p->fts_level == FTS_ROOTLEVEL) { if (FCHDIR(sp, sp->fts_rfd)) { SET(FTS_STOP); + sp->fts_cur = p; return (NULL); } } else if (p->fts_flags & FTS_SYMFOLLOW) { @@ -679,12 +681,14 @@ (void)close(p->fts_symfd); __set_errno (saved_errno); SET(FTS_STOP); + sp->fts_cur = p; return (NULL); } (void)close(p->fts_symfd); } else if (!(p->fts_flags & FTS_DONTCHDIR) && fts_safe_changedir(sp, p->fts_parent, -1, "..")) { SET(FTS_STOP); + sp->fts_cur = p; return (NULL); } p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP;