-+ char *old_loc = setlocale(LC_CTYPE, NULL);
-+ if (old_loc) {
-+ old_loc = xstrdup(old_loc);
++ char *old_ctype = setlocale(LC_CTYPE, NULL);
++ char *old_collate = setlocale(LC_COLLATE, NULL);
++
++ if (old_ctype) {
++ old_ctype = xstrdup(old_ctype);