diff --git a/racket/src/rktio/rktio_convert.c b/racket/src/rktio/rktio_convert.c index 1bc535fa54..019dbb7dfa 100644 --- a/racket/src/rktio/rktio_convert.c +++ b/racket/src/rktio/rktio_convert.c @@ -356,10 +356,12 @@ static char *nl_langinfo_dup(rktio_t *rktio) { char *s; # if HAVE_CODESET -# ifdef RKTIO_USE_XLOCALE - s = nl_langinfo_l(CODESET, rktio->locale); -# else +# if defined(RKTIO_USE_XLOCALE) + locale_t old_l = uselocale(rktio->locale); +# endif s = nl_langinfo(CODESET); +# if defined(RKTIO_USE_XLOCALE) + uselocale(old_l); # endif # else /* nl_langinfo doesn't work, so just make up something */