--- getgrent.c.orig 2007-12-12 12:08:02.000000000 +0200 +++ getgrent.c 2012-02-28 11:00:23.000000000 +0200 @@ -811,6 +811,7 @@ files_setgrent(void *retval, void *mdata rewind(st->fp); else if (stayopen) st->fp = fopen(_PATH_GROUP, "r"); + st->stayopen = stayopen; break; case ENDGRENT: if (st->fp != NULL) { @@ -1252,6 +1253,7 @@ compat_setgrent(void *retval, void *mdat rewind(st->fp); else if (stayopen) st->fp = fopen(_PATH_GROUP, "r"); + st->stayopen = stayopen; set_setent(dtab, mdata); (void)_nsdispatch(NULL, dtab, NSDB_GROUP_COMPAT, "setgrent", compatsrc, 0);