Index: locale/collate.c =================================================================== diff --git a/head/lib/libc/locale/collate.c b/head/lib/libc/locale/collate.c --- a/head/lib/libc/locale/collate.c (revision 302532) +++ b/head/lib/libc/locale/collate.c (working copy) @@ -310,7 +310,7 @@ if ((sptr = *state) != NULL) { *pri = *sptr; sptr++; - if ((sptr == *state) || (*sptr == 0)) + if ((sptr == *state) || (sptr == NULL)) *state = NULL; else *state = sptr; @@ -451,6 +451,7 @@ errno = EINVAL; goto fail; } + state = NULL; pri = COLLATE_MAX_PRIORITY; } if (room) { @@ -469,6 +470,7 @@ errno = EINVAL; goto fail; } + state = NULL; continue; } if (room) { @@ -597,6 +599,7 @@ errno = EINVAL; goto fail; } + state = NULL; pri = COLLATE_MAX_PRIORITY; } @@ -622,6 +625,7 @@ errno = EINVAL; goto fail; } + state = NULL; continue; }