about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-07-31 07:17:01 +0000
committerRoland McGrath <roland@gnu.org>2006-07-31 07:17:01 +0000
commit518b2177f6c4f79e148414edf507a1aabab0e07b (patch)
tree8208ec657ac9776ade468a04bc9a8d60e8ab9e2a
parentab5823b4b6e760345d347b98830ccc75aa81bff6 (diff)
downloadglibc-518b2177f6c4f79e148414edf507a1aabab0e07b.tar.gz
glibc-518b2177f6c4f79e148414edf507a1aabab0e07b.tar.xz
glibc-518b2177f6c4f79e148414edf507a1aabab0e07b.zip
Updated to fedora-glibc-20060731T0706
-rw-r--r--ChangeLog29
-rw-r--r--fedora/branch.mk4
-rw-r--r--include/signal.h3
-rw-r--r--include/time.h5
-rw-r--r--include/unistd.h2
-rw-r--r--locale/programs/charmap.c10
-rw-r--r--locale/programs/localedef.c26
-rw-r--r--localedata/ChangeLog162
-rw-r--r--localedata/locales/aa_DJ4
-rw-r--r--localedata/locales/af_ZA10
-rw-r--r--localedata/locales/am_ET2
-rw-r--r--localedata/locales/ar_AE2
-rw-r--r--localedata/locales/ar_BH2
-rw-r--r--localedata/locales/ar_DZ2
-rw-r--r--localedata/locales/ar_EG4
-rw-r--r--localedata/locales/ar_IN2
-rw-r--r--localedata/locales/ar_IQ2
-rw-r--r--localedata/locales/ar_JO2
-rw-r--r--localedata/locales/ar_KW2
-rw-r--r--localedata/locales/ar_LB2
-rw-r--r--localedata/locales/ar_LY2
-rw-r--r--localedata/locales/ar_MA2
-rw-r--r--localedata/locales/ar_OM2
-rw-r--r--localedata/locales/ar_QA2
-rw-r--r--localedata/locales/ar_SA2
-rw-r--r--localedata/locales/ar_SD2
-rw-r--r--localedata/locales/ar_SY2
-rw-r--r--localedata/locales/ar_TN2
-rw-r--r--localedata/locales/ar_YE2
-rw-r--r--localedata/locales/as_IN8
-rw-r--r--localedata/locales/az_AZ8
-rw-r--r--localedata/locales/be_BY4
-rw-r--r--localedata/locales/bg_BG4
-rw-r--r--localedata/locales/bn_BD4
-rw-r--r--localedata/locales/bn_IN5
-rw-r--r--localedata/locales/ca_AD4
-rw-r--r--localedata/locales/ca_ES4
-rw-r--r--localedata/locales/ca_ES@euro2
-rw-r--r--localedata/locales/ca_FR4
-rw-r--r--localedata/locales/ca_IT4
-rw-r--r--localedata/locales/cs_CZ4
-rw-r--r--localedata/locales/dz_BT13
-rw-r--r--localedata/locales/el_CY2
-rw-r--r--localedata/locales/el_GR4
-rw-r--r--localedata/locales/en_AU2
-rw-r--r--localedata/locales/en_CA2
-rw-r--r--localedata/locales/en_DK2
-rw-r--r--localedata/locales/en_GB4
-rw-r--r--localedata/locales/en_HK2
-rw-r--r--localedata/locales/en_IE2
-rw-r--r--localedata/locales/en_IE@euro2
-rw-r--r--localedata/locales/en_IN2
-rw-r--r--localedata/locales/en_NZ2
-rw-r--r--localedata/locales/en_PH26
-rw-r--r--localedata/locales/en_SG24
-rw-r--r--localedata/locales/en_US2
-rw-r--r--localedata/locales/en_ZA10
-rw-r--r--localedata/locales/es_AR2
-rw-r--r--localedata/locales/es_BO2
-rw-r--r--localedata/locales/es_CL2
-rw-r--r--localedata/locales/es_CO2
-rw-r--r--localedata/locales/es_CR2
-rw-r--r--localedata/locales/es_DO2
-rw-r--r--localedata/locales/es_EC2
-rw-r--r--localedata/locales/es_ES4
-rw-r--r--localedata/locales/es_ES@euro2
-rw-r--r--localedata/locales/es_GT2
-rw-r--r--localedata/locales/es_HN2
-rw-r--r--localedata/locales/es_MX2
-rw-r--r--localedata/locales/es_NI2
-rw-r--r--localedata/locales/es_PA2
-rw-r--r--localedata/locales/es_PE2
-rw-r--r--localedata/locales/es_PR2
-rw-r--r--localedata/locales/es_PY2
-rw-r--r--localedata/locales/es_SV2
-rw-r--r--localedata/locales/es_US2
-rw-r--r--localedata/locales/es_UY2
-rw-r--r--localedata/locales/es_VE2
-rw-r--r--localedata/locales/et_EE4
-rw-r--r--localedata/locales/eu_ES2
-rw-r--r--localedata/locales/eu_ES@euro2
-rw-r--r--localedata/locales/fa_IR4
-rw-r--r--localedata/locales/fi_FI4
-rw-r--r--localedata/locales/fi_FI@euro2
-rw-r--r--localedata/locales/fo_FO2
-rw-r--r--localedata/locales/ga_IE4
-rw-r--r--localedata/locales/ga_IE@euro2
-rw-r--r--localedata/locales/gez_ER2
-rw-r--r--localedata/locales/gez_ET2
-rw-r--r--localedata/locales/gl_ES2
-rw-r--r--localedata/locales/gl_ES@euro2
-rw-r--r--localedata/locales/gu_IN4
-rw-r--r--localedata/locales/gv_GB6
-rw-r--r--localedata/locales/he_IL4
-rw-r--r--localedata/locales/hi_IN4
-rw-r--r--localedata/locales/hr_HR4
-rw-r--r--localedata/locales/hy_AM4
-rw-r--r--localedata/locales/id_ID4
-rw-r--r--localedata/locales/is_IS4
-rw-r--r--localedata/locales/it_CH2
-rw-r--r--localedata/locales/it_IT4
-rw-r--r--localedata/locales/it_IT@euro2
-rw-r--r--localedata/locales/iw_IL4
-rw-r--r--localedata/locales/ja_JP1
-rw-r--r--localedata/locales/kk_KZ4
-rw-r--r--localedata/locales/kl_GL2
-rw-r--r--localedata/locales/km_KH10
-rw-r--r--localedata/locales/kn_IN4
-rw-r--r--localedata/locales/ko_KR1
-rw-r--r--localedata/locales/kw_GB4
-rw-r--r--localedata/locales/ky_KG4
-rw-r--r--localedata/locales/lg_UG5
-rw-r--r--localedata/locales/lt_LT4
-rw-r--r--localedata/locales/lv_LV4
-rw-r--r--localedata/locales/mk_MK11
-rw-r--r--localedata/locales/mr_IN4
-rw-r--r--localedata/locales/ms_MY4
-rw-r--r--localedata/locales/mt_MT4
-rw-r--r--localedata/locales/nb_NO4
-rw-r--r--localedata/locales/ne_NP6
-rw-r--r--localedata/locales/nl_BE2
-rw-r--r--localedata/locales/nl_BE@euro2
-rw-r--r--localedata/locales/nl_NL4
-rw-r--r--localedata/locales/nl_NL@euro2
-rw-r--r--localedata/locales/nn_NO2
-rw-r--r--localedata/locales/nr_ZA41
-rw-r--r--localedata/locales/om_KE4
-rw-r--r--localedata/locales/or_IN4
-rw-r--r--localedata/locales/pa_IN2
-rw-r--r--localedata/locales/pl_PL4
-rw-r--r--localedata/locales/pt_BR2
-rw-r--r--localedata/locales/pt_PT12
-rw-r--r--localedata/locales/pt_PT@euro2
-rw-r--r--localedata/locales/ru_RU4
-rw-r--r--localedata/locales/ru_UA2
-rw-r--r--localedata/locales/rw_RW5
-rw-r--r--localedata/locales/se_NO4
-rw-r--r--localedata/locales/si_LK8
-rw-r--r--localedata/locales/sk_SK4
-rw-r--r--localedata/locales/sl_SI4
-rw-r--r--localedata/locales/so_SO4
-rw-r--r--localedata/locales/sq_AL4
-rw-r--r--localedata/locales/ss_ZA41
-rw-r--r--localedata/locales/st_ZA43
-rw-r--r--localedata/locales/sv_FI2
-rw-r--r--localedata/locales/sv_FI@euro2
-rw-r--r--localedata/locales/sv_SE4
-rw-r--r--localedata/locales/ta_IN4
-rw-r--r--localedata/locales/te_IN11
-rw-r--r--localedata/locales/tg_TJ9
-rw-r--r--localedata/locales/th_TH4
-rw-r--r--localedata/locales/ti_ET2
-rw-r--r--localedata/locales/tn_ZA41
-rw-r--r--localedata/locales/tr_TR3
-rw-r--r--localedata/locales/ts_ZA41
-rw-r--r--localedata/locales/tt_RU4
-rw-r--r--localedata/locales/uk_UA4
-rw-r--r--localedata/locales/ve_ZA41
-rw-r--r--localedata/locales/vi_VN3
-rw-r--r--localedata/locales/xh_ZA13
-rw-r--r--localedata/locales/zh_CN4
-rw-r--r--localedata/locales/zh_HK2
-rw-r--r--localedata/locales/zh_SG24
-rw-r--r--localedata/locales/zu_ZA25
-rw-r--r--nptl/ChangeLog13
-rw-r--r--nptl/Makefile2
-rw-r--r--nptl/pthread_mutex_lock.c3
-rw-r--r--nptl/pthread_mutex_timedlock.c4
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h12
-rw-r--r--sysdeps/posix/pause.c18
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sigsuspend.c49
-rw-r--r--sysdeps/unix/sysv/linux/not-cancel.h22
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c47
-rw-r--r--sysdeps/unix/sysv/linux/sigsuspend.c29
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sigsuspend.c1
176 files changed, 863 insertions, 438 deletions
diff --git a/ChangeLog b/ChangeLog
index dfca3fceb3..7d172adb0f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2006-07-30  Roland McGrath  <roland@redhat.com>
+
+	* sysdeps/unix/sysv/linux/ia64/sigsuspend.c: File removed.
+	* sysdeps/unix/sysv/linux/x86_64/sigsuspend.c: File removed.
+	* sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c: File removed.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c: File removed.
+
+	* sysdeps/unix/sysv/linux/not-cancel.h (pause_not_cancel): New macro.
+	(nanosleep_not_cancel): New macro.
+	(sigsuspend_not_cancel): new macro.
+	* sysdeps/unix/sysv/linux/sigsuspend.c [__ASSUME_REALTIME_SIGNALS]
+	(do_sigsuspend): Define as inline.
+	(__sigsuspend): Always use do_sigsuspend.
+	[! NO_CANCELLATION] (__sigsuspend_nocancel): New function.
+	* include/signal.h: Declare __sigsuspend_nocancel.
+	* sysdeps/posix/pause.c
+	[! NO_CANCELLATION] (__pause_nocancel): New function.
+
+	* include/unistd.h (__pause_nocancel): Add attribute_hidden.
+	* include/time.h (__nanosleep_nocancel): Likewise.
+
+2006-07-30  Ulrich Drepper  <drepper@redhat.com>
+
+	* locale/programs/localedef.c (add_to_readlist): Rename local
+	variables to avoid confusion.
+
+	* locale/programs/charmap.c (charmap_read): Emit error message if
+	charmap couldn't be found or read.
+
 2006-07-28  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/kernel-features.h: Define
diff --git a/fedora/branch.mk b/fedora/branch.mk
index cd60348072..0e239ca15d 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-fc4
-fedora-sync-date := 2006-07-29 22:55 UTC
-fedora-sync-tag := fedora-glibc-20060729T2255
+fedora-sync-date := 2006-07-31 07:06 UTC
+fedora-sync-tag := fedora-glibc-20060731T0706
diff --git a/include/signal.h b/include/signal.h
index 2be67babad..6bbfbcf808 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -26,6 +26,9 @@ extern int __sigprocmask (int __how,
 			  __const sigset_t *__set, sigset_t *__oset);
 extern int __sigsuspend (__const sigset_t *__set);
 libc_hidden_proto (__sigsuspend)
+#ifndef NO_CANCELLATION
+extern int __sigsuspend_nocancel (__const sigset_t *__set) attribute_hidden;
+#endif
 extern int __sigwait (__const sigset_t *__set, int *__sig);
 libc_hidden_proto (__sigwait)
 extern int __sigwaitinfo (__const sigset_t *__set, siginfo_t *__info);
diff --git a/include/time.h b/include/time.h
index f2a6489efd..d71f985014 100644
--- a/include/time.h
+++ b/include/time.h
@@ -81,9 +81,10 @@ extern long int __tzname_max (void);
 
 extern int __nanosleep (__const struct timespec *__requested_time,
 			struct timespec *__remaining);
+libc_hidden_proto (__nanosleep)
 extern int __nanosleep_nocancel (__const struct timespec *__requested_time,
-				 struct timespec *__remaining);
-libc_hidden_proto(__nanosleep)
+				 struct timespec *__remaining)
+  attribute_hidden;
 extern int __getdate_r (__const char *__string, struct tm *__resbufp);
 
 
diff --git a/include/unistd.h b/include/unistd.h
index fb7a044b57..f34d53f223 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -163,6 +163,6 @@ extern __pid_t __libc_fork (void);
    This always returns -1 and sets `errno' to EINTR.  */
 extern int __libc_pause (void);
 /* Not cancelable variant.  */
-extern int __pause_nocancel (void);
+extern int __pause_nocancel (void) attribute_hidden;
 
 #endif
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index 6ac898d161..e56b0be81c 100644
--- a/locale/programs/charmap.c
+++ b/locale/programs/charmap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1998-2004,2005 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1998-2004,2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
 
@@ -130,13 +130,11 @@ charmap_read (const char *filename, int verbose, int be_quiet, int use_default)
 	}
 
       if (cmfile != NULL)
-	{
-	  result = parse_charmap (cmfile, verbose, be_quiet);
+	result = parse_charmap (cmfile, verbose, be_quiet);
 
-	  if (result == NULL && !be_quiet)
-	    WITH_CUR_LOCALE (error (0, errno, _("\
+      if (result == NULL && !be_quiet)
+	WITH_CUR_LOCALE (error (0, errno, _("\
 character map file `%s' not found"), filename));
-	}
     }
 
   if (result == NULL && filename != NULL && strchr (filename, '/') == NULL)
diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
index 645a803c06..f705f34a75 100644
--- a/locale/programs/localedef.c
+++ b/locale/programs/localedef.c
@@ -530,7 +530,7 @@ normalize_codeset (codeset, name_len)
 
 
 struct localedef_t *
-add_to_readlist (int locale, const char *name, const char *repertoire_name,
+add_to_readlist (int category, const char *name, const char *repertoire_name,
 		 int generate, struct localedef_t *copy_locale)
 {
   struct localedef_t *runp = locales;
@@ -561,39 +561,39 @@ add_to_readlist (int locale, const char *name, const char *repertoire_name,
     }
 
   if (generate
-      && (runp->needed & (1 << locale)) != 0
-      && (runp->avail & (1 << locale)) == 0)
+      && (runp->needed & (1 << category)) != 0
+      && (runp->avail & (1 << category)) == 0)
     WITH_CUR_LOCALE (error (5, 0, _("\
 circular dependencies between locale definitions")));
 
   if (copy_locale != NULL)
     {
-      if (runp->categories[locale].generic != NULL)
+      if (runp->categories[category].generic != NULL)
 	WITH_CUR_LOCALE (error (5, 0, _("\
 cannot add already read locale `%s' a second time"), name));
       else
-	runp->categories[locale].generic =
-	  copy_locale->categories[locale].generic;
+	runp->categories[category].generic =
+	  copy_locale->categories[category].generic;
     }
 
-  runp->needed |= 1 << locale;
+  runp->needed |= 1 << category;
 
   return runp;
 }
 
 
 struct localedef_t *
-find_locale (int locale, const char *name, const char *repertoire_name,
+find_locale (int category, const char *name, const char *repertoire_name,
 	     const struct charmap_t *charmap)
 {
   struct localedef_t *result;
 
   /* Find the locale, but do not generate it since this would be a bug.  */
-  result = add_to_readlist (locale, name, repertoire_name, 0, NULL);
+  result = add_to_readlist (category, name, repertoire_name, 0, NULL);
 
   assert (result != NULL);
 
-  if ((result->avail & (1 << locale)) == 0
+  if ((result->avail & (1 << category)) == 0
       && locfile_read (result, charmap) != 0)
     WITH_CUR_LOCALE (error (4, errno, _("\
 cannot open locale definition file `%s'"), result->name));
@@ -603,17 +603,17 @@ cannot open locale definition file `%s'"), result->name));
 
 
 struct localedef_t *
-load_locale (int locale, const char *name, const char *repertoire_name,
+load_locale (int category, const char *name, const char *repertoire_name,
 	     const struct charmap_t *charmap, struct localedef_t *copy_locale)
 {
   struct localedef_t *result;
 
   /* Generate the locale if it does not exist.  */
-  result = add_to_readlist (locale, name, repertoire_name, 1, copy_locale);
+  result = add_to_readlist (category, name, repertoire_name, 1, copy_locale);
 
   assert (result != NULL);
 
-  if ((result->avail & (1 << locale)) == 0
+  if ((result->avail & (1 << category)) == 0
       && locfile_read (result, charmap) != 0)
     WITH_CUR_LOCALE (error (4, errno, _("\
 cannot open locale definition file `%s'"), result->name));
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index c8c53b193e..3e43cf73c6 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,165 @@
+2006-07-30  Ulrich Drepper  <drepper@redhat.com>
+
+	* locales/te_IN: Minor fixups.
+	* locales/pt_PT: Likewise.
+
+	* locales/aa_DJ: Add transliateration support to LC_CTYPE.
+	* locales/af_ZA: Likewise.
+	* locales/am_ET: Likewise.
+	* locales/ar_AE: Likewise.
+	* locales/ar_BH: Likewise.
+	* locales/ar_DZ: Likewise.
+	* locales/ar_EG: Likewise.
+	* locales/ar_IN: Likewise.
+	* locales/ar_IQ: Likewise.
+	* locales/ar_JO: Likewise.
+	* locales/ar_KW: Likewise.
+	* locales/ar_LB: Likewise.
+	* locales/ar_LY: Likewise.
+	* locales/ar_MA: Likewise.
+	* locales/ar_OM: Likewise.
+	* locales/ar_QA: Likewise.
+	* locales/ar_SA: Likewise.
+	* locales/ar_SD: Likewise.
+	* locales/ar_SY: Likewise.
+	* locales/ar_TN: Likewise.
+	* locales/ar_YE: Likewise.
+	* locales/as_IN: Likewise.
+	* locales/az_AZ: Likewise.
+	* locales/be_BY: Likewise.
+	* locales/bg_BG: Likewise.
+	* locales/bn_BD: Likewise.
+	* locales/bn_IN: Likewise.
+	* locales/ca_AD: Likewise.
+	* locales/ca_ES: Likewise.
+	* locales/ca_ES@euro: Likewise.
+	* locales/ca_FR: Likewise.
+	* locales/ca_IT: Likewise.
+	* locales/cs_CZ: Likewise.
+	* locales/dz_BT: Likewise.
+	* locales/el_CY: Likewise.
+	* locales/el_GR: Likewise.
+	* locales/en_AU: Likewise.
+	* locales/en_CA: Likewise.
+	* locales/en_DK: Likewise.
+	* locales/en_GB: Likewise.
+	* locales/en_HK: Likewise.
+	* locales/en_IE: Likewise.
+	* locales/en_IE@euro: Likewise.
+	* locales/en_IN: Likewise.
+	* locales/en_NZ: Likewise.
+	* locales/en_PH: Likewise.
+	* locales/en_SG: Likewise.
+	* locales/en_US: Likewise.
+	* locales/en_ZA: Likewise.
+	* locales/es_AR: Likewise.
+	* locales/es_BO: Likewise.
+	* locales/es_CL: Likewise.
+	* locales/es_CO: Likewise.
+	* locales/es_CR: Likewise.
+	* locales/es_DO: Likewise.
+	* locales/es_EC: Likewise.
+	* locales/es_ES: Likewise.
+	* locales/es_ES@euro: Likewise.
+	* locales/es_GT: Likewise.
+	* locales/es_HN: Likewise.
+	* locales/es_MX: Likewise.
+	* locales/es_NI: Likewise.
+	* locales/es_PA: Likewise.
+	* locales/es_PE: Likewise.
+	* locales/es_PR: Likewise.
+	* locales/es_PY: Likewise.
+	* locales/es_SV: Likewise.
+	* locales/es_US: Likewise.
+	* locales/es_UY: Likewise.
+	* locales/es_VE: Likewise.
+	* locales/et_EE: Likewise.
+	* locales/eu_ES: Likewise.
+	* locales/eu_ES@euro: Likewise.
+	* locales/fa_IR: Likewise.
+	* locales/fi_FI: Likewise.
+	* locales/fi_FI@euro: Likewise.
+	* locales/fo_FO: Likewise.
+	* locales/ga_IE: Likewise.
+	* locales/ga_IE@euro: Likewise.
+	* locales/gez_ER: Likewise.
+	* locales/gez_ET: Likewise.
+	* locales/gl_ES: Likewise.
+	* locales/gl_ES@euro: Likewise.
+	* locales/gu_IN: Likewise.
+	* locales/gv_GB: Likewise.
+	* locales/he_IL: Likewise.
+	* locales/hi_IN: Likewise.
+	* locales/hr_HR: Likewise.
+	* locales/hy_AM: Likewise.
+	* locales/id_ID: Likewise.
+	* locales/is_IS: Likewise.
+	* locales/it_CH: Likewise.
+	* locales/it_IT: Likewise.
+	* locales/it_IT@euro: Likewise.
+	* locales/iw_IL: Likewise.
+	* locales/ja_JP: Likewise.
+	* locales/kk_KZ: Likewise.
+	* locales/kl_GL: Likewise.
+	* locales/km_KH: Likewise.
+	* locales/kn_IN: Likewise.
+	* locales/ko_KR: Likewise.
+	* locales/kw_GB: Likewise.
+	* locales/ky_KG: Likewise.
+	* locales/lg_UG: Likewise.
+	* locales/lt_LT: Likewise.
+	* locales/lv_LV: Likewise.
+	* locales/mk_MK: Likewise.
+	* locales/mr_IN: Likewise.
+	* locales/ms_MY: Likewise.
+	* locales/mt_MT: Likewise.
+	* locales/nb_NO: Likewise.
+	* locales/ne_NP: Likewise.
+	* locales/nl_BE: Likewise.
+	* locales/nl_BE@euro: Likewise.
+	* locales/nl_NL: Likewise.
+	* locales/nl_NL@euro: Likewise.
+	* locales/nn_NO: Likewise.
+	* locales/nr_ZA: Likewise.
+	* locales/om_KE: Likewise.
+	* locales/or_IN: Likewise.
+	* locales/pa_IN: Likewise.
+	* locales/pl_PL: Likewise.
+	* locales/pt_BR: Likewise.
+	* locales/pt_PT: Likewise.
+	* locales/pt_PT@euro: Likewise.
+	* locales/ru_RU: Likewise.
+	* locales/ru_UA: Likewise.
+	* locales/rw_RW: Likewise.
+	* locales/se_NO: Likewise.
+	* locales/si_LK: Likewise.
+	* locales/sk_SK: Likewise.
+	* locales/sl_SI: Likewise.
+	* locales/so_SO: Likewise.
+	* locales/sq_AL: Likewise.
+	* locales/ss_ZA: Likewise.
+	* locales/st_ZA: Likewise.
+	* locales/sv_FI: Likewise.
+	* locales/sv_FI@euro: Likewise.
+	* locales/sv_SE: Likewise.
+	* locales/ta_IN: Likewise.
+	* locales/te_IN: Likewise.
+	* locales/tg_TJ: Likewise.
+	* locales/th_TH: Likewise.
+	* locales/ti_ET: Likewise.
+	* locales/tn_ZA: Likewise.
+	* locales/tr_TR: Likewise.
+	* locales/ts_ZA: Likewise.
+	* locales/tt_RU: Likewise.
+	* locales/uk_UA: Likewise.
+	* locales/ve_ZA: Likewise.
+	* locales/vi_VN: Likewise.
+	* locales/xh_ZA: Likewise.
+	* locales/zh_CN: Likewise.
+	* locales/zh_HK: Likewise.
+	* locales/zh_SG: Likewise.
+	* locales/zu_ZA: Likewise.
+
 2006-05-26  Ulrich Drepper  <drepper@redhat.com>
 
 	* SUPPORTED (SUPPORTED-LOCALES): Add as_IN.UTF-8 and or_IN.UTF-8.
diff --git a/localedata/locales/aa_DJ b/localedata/locales/aa_DJ
index 5d61e4d27c..184b8c474a 100644
--- a/localedata/locales/aa_DJ
+++ b/localedata/locales/aa_DJ
@@ -62,6 +62,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 
diff --git a/localedata/locales/af_ZA b/localedata/locales/af_ZA
index 81f8bfe151..2a85acfe9e 100644
--- a/localedata/locales/af_ZA
+++ b/localedata/locales/af_ZA
@@ -63,6 +63,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -95,7 +99,7 @@ day         "<U0053><U006F><U006E><U0064><U0061><U0067>";/
             "<U0056><U0072><U0079><U0064><U0061><U0067>";/
             "<U0053><U0061><U0074><U0065><U0072><U0064><U0061><U0067>"
 
-% abmon - The abbreviations for the months 
+% abmon - The abbreviations for the months
 % - Jan, Feb, Mrt, Apr, Mei, Jun, Jul, Aug, Sep, Okt, Nov, Des
 abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
             "<U004D><U0072><U0074>";"<U0041><U0070><U0072>";/
@@ -104,7 +108,7 @@ abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
             "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
             "<U004E><U006F><U0076>";"<U0044><U0065><U0073>"
 
-% mon - The full names of the months - 
+% mon - The full names of the months -
 % Januarie, Februarie, Maart, April, Mei, Junie
 % Julie, Augustus, September, Oktober, November, Desember
 mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0069><U0065>";/
@@ -205,7 +209,7 @@ name_gen    ""
 % Salutation for unmarried females
 % "mej"
 name_miss   "<U006D><U0065><U006A>"
- 
+
 % Salutation for males
 % "mnr"
 name_mr     "<U006D><U006E><U0072>"
diff --git a/localedata/locales/am_ET b/localedata/locales/am_ET
index a313d3f928..eb40a9eac2 100644
--- a/localedata/locales/am_ET
+++ b/localedata/locales/am_ET
@@ -593,6 +593,8 @@ LC_CTYPE
 copy "i18n"
 space <U1361>
 translit_start
+include "translit_combining";""
+
 % hoy-sadis followed by a vowel
 <U1205><U12A0>    <U0068><U0027><U0065>
 <U1205><U12A1>    <U0068><U0027><U0075>
diff --git a/localedata/locales/ar_AE b/localedata/locales/ar_AE
index e6645e8945..ab4fc40c6f 100644
--- a/localedata/locales/ar_AE
+++ b/localedata/locales/ar_AE
@@ -32,7 +32,7 @@ category  "ar_AE:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_BH b/localedata/locales/ar_BH
index 9d6783d680..c47c45d934 100644
--- a/localedata/locales/ar_BH
+++ b/localedata/locales/ar_BH
@@ -33,7 +33,7 @@ END LC_IDENTIFICATION
 
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_DZ b/localedata/locales/ar_DZ
index 3c1ea26830..cd7f039a2a 100644
--- a/localedata/locales/ar_DZ
+++ b/localedata/locales/ar_DZ
@@ -32,7 +32,7 @@ category  "ar_DZ:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_EG b/localedata/locales/ar_EG
index 157dc6717c..d26d43854f 100644
--- a/localedata/locales/ar_EG
+++ b/localedata/locales/ar_EG
@@ -33,6 +33,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_IN b/localedata/locales/ar_IN
index aec12226e7..a20cd6d697 100644
--- a/localedata/locales/ar_IN
+++ b/localedata/locales/ar_IN
@@ -34,7 +34,7 @@ END LC_IDENTIFICATION
 
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 
diff --git a/localedata/locales/ar_IQ b/localedata/locales/ar_IQ
index fe7bbb164f..9a458d4009 100644
--- a/localedata/locales/ar_IQ
+++ b/localedata/locales/ar_IQ
@@ -32,7 +32,7 @@ category  "ar_IQ:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_JO b/localedata/locales/ar_JO
index 9e6b34304d..9a6c2ca582 100644
--- a/localedata/locales/ar_JO
+++ b/localedata/locales/ar_JO
@@ -33,7 +33,7 @@ END LC_IDENTIFICATION
 
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_KW b/localedata/locales/ar_KW
index 6e0d31e930..6bfa609efe 100644
--- a/localedata/locales/ar_KW
+++ b/localedata/locales/ar_KW
@@ -32,7 +32,7 @@ category  "ar_KW:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_LB b/localedata/locales/ar_LB
index b3875bf7e9..c8fdafc688 100644
--- a/localedata/locales/ar_LB
+++ b/localedata/locales/ar_LB
@@ -32,7 +32,7 @@ category  "ar_LB:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_LY b/localedata/locales/ar_LY
index 2950a484dd..2ca3f06f97 100644
--- a/localedata/locales/ar_LY
+++ b/localedata/locales/ar_LY
@@ -32,7 +32,7 @@ category  "ar_LY:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_MA b/localedata/locales/ar_MA
index 137ad468d6..703c118854 100644
--- a/localedata/locales/ar_MA
+++ b/localedata/locales/ar_MA
@@ -32,7 +32,7 @@ category  "ar_MA:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_OM b/localedata/locales/ar_OM
index c52fc81a17..1966d19649 100644
--- a/localedata/locales/ar_OM
+++ b/localedata/locales/ar_OM
@@ -32,7 +32,7 @@ category  "ar_OM:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_QA b/localedata/locales/ar_QA
index 86294ab70e..5603b6ab7d 100644
--- a/localedata/locales/ar_QA
+++ b/localedata/locales/ar_QA
@@ -32,7 +32,7 @@ category  "ar_QA:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_SA b/localedata/locales/ar_SA
index 4270ed3016..f41190d521 100644
--- a/localedata/locales/ar_SA
+++ b/localedata/locales/ar_SA
@@ -36,7 +36,7 @@ category  "ar_SA:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 
diff --git a/localedata/locales/ar_SD b/localedata/locales/ar_SD
index 99c0245d61..23778596a0 100644
--- a/localedata/locales/ar_SD
+++ b/localedata/locales/ar_SD
@@ -32,7 +32,7 @@ category  "ar_SD:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_SY b/localedata/locales/ar_SY
index 927ee161d0..073625420e 100644
--- a/localedata/locales/ar_SY
+++ b/localedata/locales/ar_SY
@@ -32,7 +32,7 @@ category  "ar_SY:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_TN b/localedata/locales/ar_TN
index 5865379d29..2895f7ccd7 100644
--- a/localedata/locales/ar_TN
+++ b/localedata/locales/ar_TN
@@ -32,7 +32,7 @@ category  "ar_TN:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ar_YE b/localedata/locales/ar_YE
index b94221dc76..bc4a2a9465 100644
--- a/localedata/locales/ar_YE
+++ b/localedata/locales/ar_YE
@@ -32,7 +32,7 @@ category  "ar_YE:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ar_EG"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/as_IN b/localedata/locales/as_IN
index 9a30d658bd..2ab76f8477 100644
--- a/localedata/locales/as_IN
+++ b/localedata/locales/as_IN
@@ -34,6 +34,10 @@ END LC_IDENTIFICATION
 %%%%%%%%%%%%%
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 %%%%%%%%%%%%%
@@ -575,8 +579,8 @@ order_start forward;forward;forward;forward
 <U09B7> <X687A>;<X0005>;<X0005>;IGNORE
 <U09B8> <X687C>;<X0005>;<X0005>;IGNORE
 <U09B9> <X687E>;<X0005>;<X0005>;IGNORE
-% FIXME <U09BD> <X6880>;<X0005>;<X0005>;IGNORE 
-%     <U09BD> (Bengali sign avagraha) is defined from Unicode4.0 
+% FIXME <U09BD> <X6880>;<X0005>;<X0005>;IGNORE
+%     <U09BD> (Bengali sign avagraha) is defined from Unicode4.0
 <U09BE> <X6882>;<X0005>;<X0005>;IGNORE
 <U09BF> <X6884>;<X0005>;<X0005>;IGNORE
 <U09C0> <X6886>;<X0005>;<X0005>;IGNORE
diff --git a/localedata/locales/az_AZ b/localedata/locales/az_AZ
index 98404a6e46..24e3779343 100644
--- a/localedata/locales/az_AZ
+++ b/localedata/locales/az_AZ
@@ -2,7 +2,7 @@ comment_char %
 escape_char  /
 %
 % Azeri Language Locale for Azerbaijan (latin)
-% Source: 
+% Source:
 % Contact: Pablo Saratxaga
 % Email: <pablo@mandrakesoft.com>
 % Language: az
@@ -47,8 +47,8 @@ END LC_IDENTIFICATION
 % TODO: fix LC_MONETARY
 
 LC_COLLATE
-% The new (1991) latin azeri alphabet is:       
-% <a>, <b>, <c>, <c,>, <d>, <e>, <sw>, <f>, <g>, <g(>, <h>, <x>, 
+% The new (1991) latin azeri alphabet is:
+% <a>, <b>, <c>, <c,>, <d>, <e>, <sw>, <f>, <g>, <g(>, <h>, <x>,
 % <i> (dotless i), <i.> (i with dot), <j>, <k>, <q>, <l>, <m>, <n>, <o>,
 % <o:>, <p>, <r>, <s>, <s,>, <t>, <u>, <u:>, <v>, <y>, <z>
 %
@@ -187,10 +187,8 @@ reorder-end
 END LC_COLLATE
 
 LC_CTYPE
-%copy "i18n"
 copy "tr_TR"
 translit_start
-include "translit_combining";""
 
 % schwa -> a:
 <U0259> "<U00E4>"
diff --git a/localedata/locales/be_BY b/localedata/locales/be_BY
index 0647eea095..3111a6a62c 100644
--- a/localedata/locales/be_BY
+++ b/localedata/locales/be_BY
@@ -62,6 +62,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/bg_BG b/localedata/locales/bg_BG
index bb15588f84..14e8fb97aa 100644
--- a/localedata/locales/bg_BG
+++ b/localedata/locales/bg_BG
@@ -40,9 +40,11 @@ category  "bg_BG:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-
 copy "i18n"
 
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/bn_BD b/localedata/locales/bn_BD
index 87b860fab7..196b42dbc3 100644
--- a/localedata/locales/bn_BD
+++ b/localedata/locales/bn_BD
@@ -38,6 +38,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/bn_IN b/localedata/locales/bn_IN
index 66be12d751..0869782f68 100644
--- a/localedata/locales/bn_IN
+++ b/localedata/locales/bn_IN
@@ -32,10 +32,7 @@ END LC_IDENTIFICATION
 
 
 LC_CTYPE
-% This is the POSIX Locale difinition for LC_CTYPE category
-% generated by IBM Basic CountryPack Transformer.
-%
-copy "i18n"
+copy "bn_BD"
 END LC_CTYPE
 
 
diff --git a/localedata/locales/ca_AD b/localedata/locales/ca_AD
index f7f68f46ba..01b87a6b75 100644
--- a/localedata/locales/ca_AD
+++ b/localedata/locales/ca_AD
@@ -1,7 +1,7 @@
 comment_char %
 escape_char  /
 %
-% Catalan Language Locale for Andorra 
+% Catalan Language Locale for Andorra
 % Language: ca
 % Territory: AD
 % Option: euro
@@ -45,7 +45,7 @@ copy "ca_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "ca_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/ca_ES b/localedata/locales/ca_ES
index b62381c7f4..156a366593 100644
--- a/localedata/locales/ca_ES
+++ b/localedata/locales/ca_ES
@@ -2112,6 +2112,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/ca_ES@euro b/localedata/locales/ca_ES@euro
index cb5b85e049..50609df06e 100644
--- a/localedata/locales/ca_ES@euro
+++ b/localedata/locales/ca_ES@euro
@@ -45,7 +45,7 @@ copy "ca_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "ca_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/ca_FR b/localedata/locales/ca_FR
index 38fc26af4d..bbaee96fa0 100644
--- a/localedata/locales/ca_FR
+++ b/localedata/locales/ca_FR
@@ -1,7 +1,7 @@
 comment_char %
 escape_char  /
 %
-% Catalan Language Locale for France 
+% Catalan Language Locale for France
 % Language: ca
 % Territory: FR
 % Option: euro
@@ -45,7 +45,7 @@ copy "ca_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "ca_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/ca_IT b/localedata/locales/ca_IT
index 8f37a45554..d257f8229a 100644
--- a/localedata/locales/ca_IT
+++ b/localedata/locales/ca_IT
@@ -1,7 +1,7 @@
 comment_char %
 escape_char  /
 %
-% Catalan Language Locale for Italy (L'Alguer) 
+% Catalan Language Locale for Italy (L'Alguer)
 % Language: ca
 % Territory: IT
 % Option: euro
@@ -45,7 +45,7 @@ copy "ca_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "ca_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/cs_CZ b/localedata/locales/cs_CZ
index a4f297e4b3..9667700a93 100644
--- a/localedata/locales/cs_CZ
+++ b/localedata/locales/cs_CZ
@@ -2303,6 +2303,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 %% LC_MESSAGES
diff --git a/localedata/locales/dz_BT b/localedata/locales/dz_BT
index cbc11d5010..a617e44ab8 100644
--- a/localedata/locales/dz_BT
+++ b/localedata/locales/dz_BT
@@ -47,6 +47,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -56,7 +60,7 @@ script <TIBETAN>
 
 % 30 base letters
 collating-symbol <TIB-KA>
-collating-symbol <TIB-KHA> 
+collating-symbol <TIB-KHA>
 collating-symbol <TIB-GA>
 collating-symbol <TIB-NGA>
 collating-symbol <TIB-CA>
@@ -1191,7 +1195,7 @@ reorder-after <U042F>
 <U0F7C> <TIB-O>;<BAS>;<NOM>;IGNORE % o
 <U0F7D> <TIB-O>;<MAC>;<NOM>;IGNORE % oo
 
-% FIXME: 0F39, 0F7F, 0F84, 0F85, 0F86, 0F87, 
+% FIXME: 0F39, 0F7F, 0F84, 0F85, 0F86, 0F87,
 
 % FIXME: 0F88, UF89, UF8A, 0F8B
 <U0F88> IGNORE;<PCT>;IGNORE;IGNORE
@@ -1278,12 +1282,12 @@ mon      "<U0F5F><U0FB3><U0F0B><U0F56><U0F0B><U0F51><U0F44><U0F0B><U0F54><U0F0B>
 
 
 
-% Appropriate date & time representation  
+% Appropriate date & time representation
 d_t_fmt      "<U0F54><U0F66><U0FB1><U0F72><U0F0B><U0F63><U0F7C>%y<U0F5F><U0F63>%m<U0F5A><U0F7A><U0F66>/
 %d<U0F46><U0F74><U0F0B><U0F5A><U0F7C><U0F51>%H<U0F40><U0F66><U0F62><U0F0B><U0F58>/
 %M<U0F40><U0F66><U0F62><U0F0B><U0F46>%S"
 
-% Appropriate date representation  
+% Appropriate date representation
 d_fmt        "<U0F54><U0F66><U0FB1><U0F72><U0F0B><U0F63><U0F7C>%y<U0F5F>/
 <U0F63>%m<U0F5A><U0F7A><U0F66>%d"
 
@@ -1357,4 +1361,3 @@ lang_ab       "<U0074><U0068>"
 lang_term     "<U0074><U0068><U0061>"
 lang_lib      "<U0074><U0068><U0061>"
 END LC_ADDRESS
-
diff --git a/localedata/locales/el_CY b/localedata/locales/el_CY
index 726ef2edb2..6620a3aac7 100644
--- a/localedata/locales/el_CY
+++ b/localedata/locales/el_CY
@@ -36,7 +36,7 @@ copy "iso14651_t1"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "el_GR"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/el_GR b/localedata/locales/el_GR
index d729d43298..676d31253e 100644
--- a/localedata/locales/el_GR
+++ b/localedata/locales/el_GR
@@ -51,6 +51,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/en_AU b/localedata/locales/en_AU
index bb52db4007..91c656fe23 100644
--- a/localedata/locales/en_AU
+++ b/localedata/locales/en_AU
@@ -47,7 +47,7 @@ category  "en_AU:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/en_CA b/localedata/locales/en_CA
index d1199b5248..cdd049a2c0 100644
--- a/localedata/locales/en_CA
+++ b/localedata/locales/en_CA
@@ -2114,7 +2114,7 @@ order_end
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/en_DK b/localedata/locales/en_DK
index 80d0411b53..e3d5eca0ba 100644
--- a/localedata/locales/en_DK
+++ b/localedata/locales/en_DK
@@ -56,7 +56,7 @@ copy "iso14651_t1"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/en_GB b/localedata/locales/en_GB
index 52bf70a639..fdd2f49511 100644
--- a/localedata/locales/en_GB
+++ b/localedata/locales/en_GB
@@ -48,6 +48,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/en_HK b/localedata/locales/en_HK
index aab7b29f53..6ccbdfdddb 100644
--- a/localedata/locales/en_HK
+++ b/localedata/locales/en_HK
@@ -37,7 +37,7 @@ END LC_IDENTIFICATION
 
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 
diff --git a/localedata/locales/en_IE b/localedata/locales/en_IE
index 2f31ddcc4e..d799cc71e0 100644
--- a/localedata/locales/en_IE
+++ b/localedata/locales/en_IE
@@ -47,7 +47,7 @@ category  "en_IE:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/en_IE@euro b/localedata/locales/en_IE@euro
index a1c302c9f7..dc429d7710 100644
--- a/localedata/locales/en_IE@euro
+++ b/localedata/locales/en_IE@euro
@@ -39,7 +39,7 @@ category  "en_IE@euro:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "en_IE"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/en_IN b/localedata/locales/en_IN
index 33323c330e..5eccc0e55b 100644
--- a/localedata/locales/en_IN
+++ b/localedata/locales/en_IN
@@ -34,7 +34,7 @@ END LC_IDENTIFICATION
 
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/en_NZ b/localedata/locales/en_NZ
index 1ca93909ad..d3f7e636cf 100644
--- a/localedata/locales/en_NZ
+++ b/localedata/locales/en_NZ
@@ -47,7 +47,7 @@ category  "en_NZ:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/en_PH b/localedata/locales/en_PH
index d822da795b..13da351db0 100644
--- a/localedata/locales/en_PH
+++ b/localedata/locales/en_PH
@@ -36,7 +36,7 @@ END LC_IDENTIFICATION
 
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_COLLATE
@@ -49,7 +49,7 @@ END LC_COLLATE
 LC_MONETARY
 % This is the POSIX Locale definition the LC_MONETARY category
 % generated by IBM Basic CountryPack Transformer.
-% These are generated based on XML base Locale defintion file 
+% These are generated based on XML base Locale defintion file
 % for IBM Class for Unicode.
 %
 int_curr_symbol       "<U0050><U0048><U0050><U0020>"
@@ -84,7 +84,7 @@ END LC_NUMERIC
 LC_TIME
 % This is the POSIX Locale definition for the LC_TIME category
 % generated by IBM Basic CountryPack Transformer.
-% These are generated based on XML base Locale difintion file 
+% These are generated based on XML base Locale difintion file
 % for IBM Class for Unicode.
 %
 % Abbreviated weekday names (%a)
@@ -115,22 +115,22 @@ mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";"<U0046><U0065><
             "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
             "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
 %
-% Equivalent of AM PM 
+% Equivalent of AM PM
 am_pm       "<U0041><U004D>";"<U0050><U004D>"
 %
-% Appropriate date and time representation 
+% Appropriate date and time representation
 % %A, %d %B, %Y %I:%M:%S  %Z
 d_t_fmt     "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U002C><U0020><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
 %
-% Appropriate date representation 
+% Appropriate date representation
 % %A, %d %B, %Y
 d_fmt       "<U0025><U0041><U002C><U0020><U0025><U0064><U0020><U0025><U0042><U002C><U0020><U0025><U0059>"
 %
-% Appropriate time representation 
+% Appropriate time representation
 % %I:%M:%S  %Z
 t_fmt       "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0020><U0025><U005A>"
 %
-% Appropriate 12 h time representation (%r) 
+% Appropriate 12 h time representation (%r)
 t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
 %
 END LC_TIME
@@ -145,14 +145,14 @@ LC_MESSAGES
 % ^[yY]
 yesexpr     "<U005E><U005B><U0079><U0059><U005D>"
 
-% Syntax on Unicode Regular Expression Guidelines TR#18 
+% Syntax on Unicode Regular Expression Guidelines TR#18
 % yesexpr     "<U005E><U005B><U0079><U0059><U005D>"
 
 %
 % ^[nN]
 noexpr      "<U005E><U005B><U006E><U004E><U005D>"
 
-% Syntax on Unicode Regular Expression Guidelines TR#18 
+% Syntax on Unicode Regular Expression Guidelines TR#18
 % noexpr      "<U005E><U005B><U006E><U004E><U005D>"
 %
 
@@ -177,8 +177,8 @@ END LC_PAPER
 LC_NAME
 % This is the ISO_IEC TR14652 Locale definition for the LC_NAME category
 % generated by IBM Basic CountryPack Transformer.
-% 
-% 
+%
+%
 name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074><U0025><U0067>"
 name_gen    ""
 name_mr     "<U004D><U0072><U002E>"
@@ -213,5 +213,3 @@ LC_MEASUREMENT
 measurement 1
 
 END LC_MEASUREMENT
-
-
diff --git a/localedata/locales/en_SG b/localedata/locales/en_SG
index d83c601425..21479fa93f 100644
--- a/localedata/locales/en_SG
+++ b/localedata/locales/en_SG
@@ -33,7 +33,7 @@ category  "en_SG:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_COLLATE
@@ -47,7 +47,7 @@ END LC_COLLATE
 LC_MONETARY
 % This is the POSIX Locale definition the LC_MONETARY category
 % generated by IBM Basic CountryPack Transformer.
-% These are generated based on XML base Locale defintion file 
+% These are generated based on XML base Locale defintion file
 % for IBM Class for Unicode.
 %
 int_curr_symbol       "<U0053><U0047><U0044><U0020>"
@@ -82,7 +82,7 @@ END LC_NUMERIC
 LC_TIME
 % This is the POSIX Locale definition for the LC_TIME category
 % generated by IBM Basic CountryPack Transformer.
-% These are generated based on XML base Locale difintion file 
+% These are generated based on XML base Locale difintion file
 % for IBM Class for Unicode.
 %
 % Abbreviated weekday names (%a)
@@ -113,22 +113,22 @@ mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";"<U0046><U0065><
             "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
             "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
 %
-% Equivalent of AM PM 
+% Equivalent of AM PM
 am_pm       "<U0041><U004D>";"<U0050><U004D>"
 %
-% Appropriate date and time representation 
+% Appropriate date and time representation
 % %A %d,%B,%Y %I:%M:%S  %Z
 d_t_fmt     "<U0025><U0041><U0020><U0025><U0064><U002C><U0025><U0042><U002C><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
 %
-% Appropriate date representation 
+% Appropriate date representation
 % %A %d,%B,%Y
 d_fmt       "<U0025><U0041><U0020><U0025><U0064><U002C><U0025><U0042><U002C><U0025><U0059>"
 %
-% Appropriate time representation 
+% Appropriate time representation
 % %I:%M:%S  %Z
 t_fmt       "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0020><U0025><U005A>"
 %
-% Appropriate 12 h time representation (%r) 
+% Appropriate 12 h time representation (%r)
 t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
 %
 END LC_TIME
@@ -143,14 +143,14 @@ LC_MESSAGES
 % ^[yY]
 yesexpr     "<U005E><U005B><U0079><U0059><U005D>"
 
-% Syntax on Unicode Regular Expression Guidelines TR#18 
+% Syntax on Unicode Regular Expression Guidelines TR#18
 % yesexpr     "<U005E><U005B><U0079><U0059><U005D>"
 
 %
 % ^[nN]
 noexpr      "<U005E><U005B><U006E><U004E><U005D>"
 
-% Syntax on Unicode Regular Expression Guidelines TR#18 
+% Syntax on Unicode Regular Expression Guidelines TR#18
 % noexpr      "<U005E><U005B><U006E><U004E><U005D>"
 %
 
@@ -175,8 +175,8 @@ END LC_PAPER
 LC_NAME
 % This is the ISO_IEC TR14652 Locale definition for the LC_NAME category
 % generated by IBM Basic CountryPack Transformer.
-% 
-% 
+%
+%
 name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074><U0025><U0067>"
 name_gen    ""
 name_mr     "<U004D><U0072><U002E>"
diff --git a/localedata/locales/en_US b/localedata/locales/en_US
index 5500484285..1a97aa7aa5 100644
--- a/localedata/locales/en_US
+++ b/localedata/locales/en_US
@@ -31,7 +31,7 @@ category  "en_US:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/en_ZA b/localedata/locales/en_ZA
index 51da395c02..4f13a96237 100644
--- a/localedata/locales/en_ZA
+++ b/localedata/locales/en_ZA
@@ -31,7 +31,7 @@ comment_char  %
 %     2003-05-17 Dwayne Bailey <dwayne@translate.org.za>
 %       - Add lang_ab, lang_term
 %       - Add various comments for reference documents
-%       - Add country_isbn, country_car, country_ab2, 
+%       - Add country_isbn, country_car, country_ab2,
 %         country_ab3, country_num
 %       - Add name_* for all salutations
 % 1.1 (2003-03-14):
@@ -74,7 +74,7 @@ category  "en_ZA:2003";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "en_GB"
 END LC_CTYPE
 
 LC_COLLATE
@@ -137,7 +137,7 @@ day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
             "<U0046><U0072><U0069><U0064><U0061><U0079>";/
             "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
 
-% abmon - The abbreviations for the months 
+% abmon - The abbreviations for the months
 % - Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
 abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
             "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
@@ -146,7 +146,7 @@ abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
             "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
             "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
 
-% mon - The full names of the months - 
+% mon - The full names of the months -
 % - January, February, March, April, May, June
 %   July, August, September, October, November, December
 mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
@@ -269,7 +269,7 @@ name_gen    ""
 % Salutation for unmarried females
 % "Miss"
 name_miss   "<U004D><U0069><U0073><U0073>"
- 
+
 % Salutation for males
 % "Mr"
 name_mr     "<U004D><U0072>"
diff --git a/localedata/locales/es_AR b/localedata/locales/es_AR
index cba3f84036..48a0bb0b51 100644
--- a/localedata/locales/es_AR
+++ b/localedata/locales/es_AR
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_BO b/localedata/locales/es_BO
index ae911c7b14..07688e875a 100644
--- a/localedata/locales/es_BO
+++ b/localedata/locales/es_BO
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_CL b/localedata/locales/es_CL
index 4fe2187894..a509848a1f 100644
--- a/localedata/locales/es_CL
+++ b/localedata/locales/es_CL
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_CO b/localedata/locales/es_CO
index 907048a578..8b58492d4e 100644
--- a/localedata/locales/es_CO
+++ b/localedata/locales/es_CO
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_CR b/localedata/locales/es_CR
index da541a95a7..aa335a2fe9 100644
--- a/localedata/locales/es_CR
+++ b/localedata/locales/es_CR
@@ -43,7 +43,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_DO b/localedata/locales/es_DO
index 9a7fd5c68b..639a033b6a 100644
--- a/localedata/locales/es_DO
+++ b/localedata/locales/es_DO
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_EC b/localedata/locales/es_EC
index e927d11324..8bd1375ff1 100644
--- a/localedata/locales/es_EC
+++ b/localedata/locales/es_EC
@@ -52,7 +52,7 @@ copy "es_US"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_ES b/localedata/locales/es_ES
index 60ec25bd5a..c710d58947 100644
--- a/localedata/locales/es_ES
+++ b/localedata/locales/es_ES
@@ -2114,6 +2114,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_ES@euro b/localedata/locales/es_ES@euro
index 1d8bd61447..1d81e83652 100644
--- a/localedata/locales/es_ES@euro
+++ b/localedata/locales/es_ES@euro
@@ -43,7 +43,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_GT b/localedata/locales/es_GT
index 0d0edf9183..42a1819346 100644
--- a/localedata/locales/es_GT
+++ b/localedata/locales/es_GT
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_HN b/localedata/locales/es_HN
index 3d2c4067fa..39faf709c3 100644
--- a/localedata/locales/es_HN
+++ b/localedata/locales/es_HN
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_MX b/localedata/locales/es_MX
index d090008da6..df400d9ff8 100644
--- a/localedata/locales/es_MX
+++ b/localedata/locales/es_MX
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_NI b/localedata/locales/es_NI
index daf67d27d0..fbae5c7644 100644
--- a/localedata/locales/es_NI
+++ b/localedata/locales/es_NI
@@ -43,7 +43,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_PA b/localedata/locales/es_PA
index 93880d280e..d3dce8e218 100644
--- a/localedata/locales/es_PA
+++ b/localedata/locales/es_PA
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_PE b/localedata/locales/es_PE
index 7e266cb46c..7fa54839c6 100644
--- a/localedata/locales/es_PE
+++ b/localedata/locales/es_PE
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_PR b/localedata/locales/es_PR
index 42edaddbaa..0f9947a89d 100644
--- a/localedata/locales/es_PR
+++ b/localedata/locales/es_PR
@@ -43,7 +43,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_PY b/localedata/locales/es_PY
index 8a6b5a0cf6..f7823a11df 100644
--- a/localedata/locales/es_PY
+++ b/localedata/locales/es_PY
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_SV b/localedata/locales/es_SV
index 4c14a953a4..42c36d4e35 100644
--- a/localedata/locales/es_SV
+++ b/localedata/locales/es_SV
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_US b/localedata/locales/es_US
index 85e9d50ae8..898920b7c7 100644
--- a/localedata/locales/es_US
+++ b/localedata/locales/es_US
@@ -2129,7 +2129,7 @@ order_end
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_UY b/localedata/locales/es_UY
index 50f8019da2..99848a74a9 100644
--- a/localedata/locales/es_UY
+++ b/localedata/locales/es_UY
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/es_VE b/localedata/locales/es_VE
index 1e890d0f60..41d9298431 100644
--- a/localedata/locales/es_VE
+++ b/localedata/locales/es_VE
@@ -52,7 +52,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/et_EE b/localedata/locales/et_EE
index 5cae672c73..3c70cdf624 100644
--- a/localedata/locales/et_EE
+++ b/localedata/locales/et_EE
@@ -2121,6 +2121,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/eu_ES b/localedata/locales/eu_ES
index e4c3c892b1..4ebaa7eb62 100644
--- a/localedata/locales/eu_ES
+++ b/localedata/locales/eu_ES
@@ -55,7 +55,7 @@ copy "iso14651_t1"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/eu_ES@euro b/localedata/locales/eu_ES@euro
index 36ee9557f4..f88fce4c7f 100644
--- a/localedata/locales/eu_ES@euro
+++ b/localedata/locales/eu_ES@euro
@@ -44,7 +44,7 @@ copy "iso14651_t1"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "eu_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/fa_IR b/localedata/locales/fa_IR
index 15fb535640..8250d7b0dc 100644
--- a/localedata/locales/fa_IR
+++ b/localedata/locales/fa_IR
@@ -72,6 +72,10 @@ map to_inpunct; /
 map to_outpunct; /
   (<U002E>,<U066B>); /
   (<U002C>,<U066C>)
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/fi_FI b/localedata/locales/fi_FI
index f657480d59..e0bba3948d 100644
--- a/localedata/locales/fi_FI
+++ b/localedata/locales/fi_FI
@@ -2119,6 +2119,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/fi_FI@euro b/localedata/locales/fi_FI@euro
index f03f0440b7..836322b21f 100644
--- a/localedata/locales/fi_FI@euro
+++ b/localedata/locales/fi_FI@euro
@@ -44,7 +44,7 @@ copy "fi_FI"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "fi_FI"
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/fo_FO b/localedata/locales/fo_FO
index 20deef722a..dc34e9b859 100644
--- a/localedata/locales/fo_FO
+++ b/localedata/locales/fo_FO
@@ -50,7 +50,7 @@ category  "fo_FO:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "da_DK"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ga_IE b/localedata/locales/ga_IE
index 751f6aba9c..8522fd3390 100644
--- a/localedata/locales/ga_IE
+++ b/localedata/locales/ga_IE
@@ -45,6 +45,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ga_IE@euro b/localedata/locales/ga_IE@euro
index 6feaaca2b2..c7a929976e 100644
--- a/localedata/locales/ga_IE@euro
+++ b/localedata/locales/ga_IE@euro
@@ -38,7 +38,7 @@ category  "ga_IE@euro:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ga_IE"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/gez_ER b/localedata/locales/gez_ER
index d6e15fcf0f..229c9b8397 100644
--- a/localedata/locales/gez_ER
+++ b/localedata/locales/gez_ER
@@ -110,7 +110,7 @@ country_num   232
 % country_car   unknown
 % country_isbn  unknown, Need ISO 2108
 lang_name     "<U130D><U12D5><U12DD>"
-lang_ab       "<U0067><U0065><U007A>"
+%lang_ab       "<U0067><U0065><U007A>"
 lang_term     "<U0067><U0065><U007A>"
 %
 % Petter Reinholdtsen reports uncommenting the below breaks compilation
diff --git a/localedata/locales/gez_ET b/localedata/locales/gez_ET
index a7d116fb76..24e09f6a2f 100644
--- a/localedata/locales/gez_ET
+++ b/localedata/locales/gez_ET
@@ -110,7 +110,7 @@ country_num   231   % 210 found in at least one ISO 3166 doc
 % country_car   unknown
 % country_isbn  unknown, Need ISO 2108
 lang_name     "<U130D><U12D5><U12DD>"
-lang_ab       "<U0067><U0065><U007A>"
+%lang_ab       "<U0067><U0065><U007A>"
 lang_term     "<U0067><U0065><U007A>"
 %
 % Petter Reinholdtsen reports uncommenting the below breaks compilation
diff --git a/localedata/locales/gl_ES b/localedata/locales/gl_ES
index 29c40bf55d..6822d64c98 100644
--- a/localedata/locales/gl_ES
+++ b/localedata/locales/gl_ES
@@ -51,7 +51,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "es_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/gl_ES@euro b/localedata/locales/gl_ES@euro
index 6934c6078e..b5214516c9 100644
--- a/localedata/locales/gl_ES@euro
+++ b/localedata/locales/gl_ES@euro
@@ -44,7 +44,7 @@ copy "es_ES"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "gl_ES"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/gu_IN b/localedata/locales/gu_IN
index 667e29a91c..6e60a2367e 100644
--- a/localedata/locales/gu_IN
+++ b/localedata/locales/gu_IN
@@ -34,6 +34,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 
diff --git a/localedata/locales/gv_GB b/localedata/locales/gv_GB
index 4a1e1481d4..34a9771710 100644
--- a/localedata/locales/gv_GB
+++ b/localedata/locales/gv_GB
@@ -1,7 +1,7 @@
 escape_char  /
 comment_char  %
 
-% WARNING: UNOFFICIAL; EXPERIMENTAL. CHECK WITH Keld Simonsen 
+% WARNING: UNOFFICIAL; EXPERIMENTAL. CHECK WITH Keld Simonsen
 % to see if there is an offical release for Manx Gaelic.
 
 % Manx Gaelic language locale for Britain
@@ -50,6 +50,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/he_IL b/localedata/locales/he_IL
index 9e80e5e481..7f6426fb89 100644
--- a/localedata/locales/he_IL
+++ b/localedata/locales/he_IL
@@ -52,6 +52,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/hi_IN b/localedata/locales/hi_IN
index 10284998a6..44644bc323 100644
--- a/localedata/locales/hi_IN
+++ b/localedata/locales/hi_IN
@@ -33,6 +33,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/hr_HR b/localedata/locales/hr_HR
index aec93fb108..04a80e2c12 100644
--- a/localedata/locales/hr_HR
+++ b/localedata/locales/hr_HR
@@ -2138,6 +2138,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/hy_AM b/localedata/locales/hy_AM
index 768f3292df..d479730a61 100644
--- a/localedata/locales/hy_AM
+++ b/localedata/locales/hy_AM
@@ -72,6 +72,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/id_ID b/localedata/locales/id_ID
index e64a9aa1b0..7584fbc47d 100644
--- a/localedata/locales/id_ID
+++ b/localedata/locales/id_ID
@@ -48,6 +48,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/is_IS b/localedata/locales/is_IS
index 726ed9fcc2..1644bfa744 100644
--- a/localedata/locales/is_IS
+++ b/localedata/locales/is_IS
@@ -2157,6 +2157,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/it_CH b/localedata/locales/it_CH
index a45660f1dd..62344c4e27 100644
--- a/localedata/locales/it_CH
+++ b/localedata/locales/it_CH
@@ -40,7 +40,7 @@ category  "it_CH:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "it_IT"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/it_IT b/localedata/locales/it_IT
index 9bc8cb8ddb..57121e1470 100644
--- a/localedata/locales/it_IT
+++ b/localedata/locales/it_IT
@@ -51,6 +51,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/it_IT@euro b/localedata/locales/it_IT@euro
index e40615b200..e995eb385f 100644
--- a/localedata/locales/it_IT@euro
+++ b/localedata/locales/it_IT@euro
@@ -43,7 +43,7 @@ copy "iso14651_t1"
 END LC_COLLATE
 
 LC_CTYPE
-copy "i18n"
+copy "it_IT"
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/iw_IL b/localedata/locales/iw_IL
index a357029783..192ffc98d0 100644
--- a/localedata/locales/iw_IL
+++ b/localedata/locales/iw_IL
@@ -51,6 +51,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ja_JP b/localedata/locales/ja_JP
index bb3897269a..54e55b1b52 100644
--- a/localedata/locales/ja_JP
+++ b/localedata/locales/ja_JP
@@ -1672,6 +1672,7 @@ tojkata	(<U3041>,<U30A1>);(<U3042>,<U30A2>);(<U3043>,<U30A3>);/
 
 translit_start
 
+include "translit_combining";""
 include "translit_cjk_variants";""
 
 translit_end
diff --git a/localedata/locales/kk_KZ b/localedata/locales/kk_KZ
index e287291534..e60be415bc 100644
--- a/localedata/locales/kk_KZ
+++ b/localedata/locales/kk_KZ
@@ -149,6 +149,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/kl_GL b/localedata/locales/kl_GL
index f4cccd40aa..ae62a698fb 100644
--- a/localedata/locales/kl_GL
+++ b/localedata/locales/kl_GL
@@ -51,7 +51,7 @@ category  "kl_GL:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "da_DK"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/km_KH b/localedata/locales/km_KH
index 07052af65f..488e53a407 100644
--- a/localedata/locales/km_KH
+++ b/localedata/locales/km_KH
@@ -68,10 +68,6 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 %copy "i18n"
-%translit_start
-%include  "translit_combining";""
-%translit_end
-
 
 upper	<U0041>;/
 	<U0042>;/
@@ -894,6 +890,10 @@ tolower	(<U0041>,<U0061>);/
 	(<U0059>,<U0079>);/
 	(<U005A>,<U007A>)
 
+translit_start
+include  "translit_combining";""
+translit_end
+
 END LC_CTYPE
 
 LC_COLLATE
@@ -1782,7 +1782,7 @@ abday   "<U17A2><U17B6>";/
         "<U1796><U17D2><U179A>";/
         "<U179F><U17BB>";/
         "<U179F>"
-	
+
 day     "<U1790><U17D2><U1784><U17C3><U200B><U17A2><U17B6><U1791><U17B7><U178F><U17D2><U1799>";/
         "<U1790><U17D2><U1784><U17C3><U200B><U1785><U17D0><U1793><U17D2><U1791>";/
         "<U1790><U17D2><U1784><U17C3><U200B><U17A2><U1784><U17D2><U1782><U17B6><U179A>";/
diff --git a/localedata/locales/kn_IN b/localedata/locales/kn_IN
index a2a04ebd3f..53c5fcac71 100644
--- a/localedata/locales/kn_IN
+++ b/localedata/locales/kn_IN
@@ -35,6 +35,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ko_KR b/localedata/locales/ko_KR
index ad78b51638..f8407fd2d1 100644
--- a/localedata/locales/ko_KR
+++ b/localedata/locales/ko_KR
@@ -6091,6 +6091,7 @@ hanja	<U3400>..<U4DB5>;<U4E00>..<U9FA5>;<UF900>..<UFA0B>;<UFA0C>..<UFA2D>
 
 translit_start
 
+include "translit_combining";""
 include "translit_hangul";""
 
 translit_end
diff --git a/localedata/locales/kw_GB b/localedata/locales/kw_GB
index b0560c7adf..fb3d8c7cbf 100644
--- a/localedata/locales/kw_GB
+++ b/localedata/locales/kw_GB
@@ -51,6 +51,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ky_KG b/localedata/locales/ky_KG
index 6441884dee..ee49f8689c 100644
--- a/localedata/locales/ky_KG
+++ b/localedata/locales/ky_KG
@@ -79,6 +79,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/lg_UG b/localedata/locales/lg_UG
index e3cf3f3164..ac4c39da24 100644
--- a/localedata/locales/lg_UG
+++ b/localedata/locales/lg_UG
@@ -50,6 +50,10 @@ LC_CTYPE
 % Use the characters described in the charmap file "i18n.tgz"
 %
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -327,4 +331,3 @@ postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
 country_ab3 "<U0055><U0047><U0041>"
 country_num 800
 END LC_ADDRESS
-
diff --git a/localedata/locales/lt_LT b/localedata/locales/lt_LT
index fb3079bfad..0240cc96cf 100644
--- a/localedata/locales/lt_LT
+++ b/localedata/locales/lt_LT
@@ -2124,6 +2124,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/lv_LV b/localedata/locales/lv_LV
index 0e823112ea..36ed49417c 100644
--- a/localedata/locales/lv_LV
+++ b/localedata/locales/lv_LV
@@ -2116,6 +2116,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/mk_MK b/localedata/locales/mk_MK
index d1bc0e7163..55a4ec70db 100644
--- a/localedata/locales/mk_MK
+++ b/localedata/locales/mk_MK
@@ -1,7 +1,7 @@
 comment_char %
 escape_char /
 % Macedonian language locale for Macedonia
-% Damjan Georgievski <gdamjan@freemail.org.mk> 
+% Damjan Georgievski <gdamjan@freemail.org.mk>
 % Revision: 1.8 (2000-11-07)
 % Charsets: UTF-8, ISO-8859-5, CP1251
 % Distribution and use is free, also
@@ -11,7 +11,7 @@ LC_IDENTIFICATION
 title      "Macedonian locale for Macedonia"
 source     ""
 address    ""
-contact    "Damjan Georgievski" 
+contact    "Damjan Georgievski"
 email      "gdamjan@freemail.org.mk"
 tel        ""
 fax        ""
@@ -40,13 +40,17 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_TIME
 abday "<U043D><U0435><U0434>";"<U043F><U043E><U043D>";/
 "<U0432><U0442><U043E>";"<U0441><U0440><U0435>";/
 "<U0447><U0435><U0442>";"<U043F><U0435><U0442>";/
-"<U0441><U0430><U0431>" 
+"<U0441><U0430><U0431>"
 day "<U043D><U0435><U0434><U0435><U043B><U0430>";/
 "<U043F><U043E><U043D><U0435><U0434><U0435><U043B><U043D><U0438><U043A>";/
 "<U0432><U0442><U043E><U0440><U043D><U0438><U043A>";/
@@ -161,4 +165,3 @@ END LC_PAPER
 LC_MEASUREMENT
 measurement    1
 END LC_MEASUREMENT
-
diff --git a/localedata/locales/mr_IN b/localedata/locales/mr_IN
index 67d4f68bfd..46bcad189b 100644
--- a/localedata/locales/mr_IN
+++ b/localedata/locales/mr_IN
@@ -33,6 +33,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ms_MY b/localedata/locales/ms_MY
index c7345f0e76..27b01d213a 100644
--- a/localedata/locales/ms_MY
+++ b/localedata/locales/ms_MY
@@ -35,6 +35,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/mt_MT b/localedata/locales/mt_MT
index 918d04345c..a882de478a 100644
--- a/localedata/locales/mt_MT
+++ b/localedata/locales/mt_MT
@@ -36,6 +36,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/nb_NO b/localedata/locales/nb_NO
index afead90319..f28d02beae 100644
--- a/localedata/locales/nb_NO
+++ b/localedata/locales/nb_NO
@@ -2125,6 +2125,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/ne_NP b/localedata/locales/ne_NP
index 63fc0d8cf7..ec26144b98 100644
--- a/localedata/locales/ne_NP
+++ b/localedata/locales/ne_NP
@@ -1,7 +1,7 @@
 comment_char    %
 escape_char     /
 % Nepali language locale for Nepal.
-% Contributed by Pawan Chitrakar <pc@info.com.np> 
+% Contributed by Pawan Chitrakar <pc@info.com.np>
 
 LC_IDENTIFICATION
 title      "Nepali language locale for Nepal"
@@ -32,6 +32,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/nl_BE b/localedata/locales/nl_BE
index 7942269130..273801d375 100644
--- a/localedata/locales/nl_BE
+++ b/localedata/locales/nl_BE
@@ -47,7 +47,7 @@ category  "nl_BE:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "nl_NL"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/nl_BE@euro b/localedata/locales/nl_BE@euro
index d05477ff00..333305cf67 100644
--- a/localedata/locales/nl_BE@euro
+++ b/localedata/locales/nl_BE@euro
@@ -39,7 +39,7 @@ category  "nl_BE@euro:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "nl_BE"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/nl_NL b/localedata/locales/nl_NL
index 74a15170e2..b917d00720 100644
--- a/localedata/locales/nl_NL
+++ b/localedata/locales/nl_NL
@@ -47,6 +47,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/nl_NL@euro b/localedata/locales/nl_NL@euro
index cd36611643..98ee41c573 100644
--- a/localedata/locales/nl_NL@euro
+++ b/localedata/locales/nl_NL@euro
@@ -39,7 +39,7 @@ category  "nl_NL@euro:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "nl_NL"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/nn_NO b/localedata/locales/nn_NO
index 26229bcd0d..097fbbc18c 100644
--- a/localedata/locales/nn_NO
+++ b/localedata/locales/nn_NO
@@ -32,7 +32,7 @@ category  "nn_NO:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "nb_NO"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/nr_ZA b/localedata/locales/nr_ZA
index 916a3fa3a0..d819bddfd1 100644
--- a/localedata/locales/nr_ZA
+++ b/localedata/locales/nr_ZA
@@ -57,6 +57,10 @@ END LC_IDENTIFICATION
 LC_CTYPE
 % Use the characters described in the charmap file "i18n.tgz"
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -81,7 +85,7 @@ abday       "<U0053><U006F><U006E>";"<U004D><U0076><U0075>";/
             "<U0042><U0069><U006C>";"<U0054><U0068><U0061>";/
             "<U004E><U0065>";"<U0048><U006C><U0061>";/
             "<U0047><U0071><U0069>"
- 
+
 % day - The full names of the week days:
 % - uSonto, uMvulo, uLesibili, lesithathu, uLesine, ngoLesihlanu, umGqibelo
 day         "<U0075><U0053><U006F><U006E><U0074><U006F>";/
@@ -91,8 +95,8 @@ day         "<U0075><U0053><U006F><U006E><U0074><U006F>";/
             "<U0075><U004C><U0065><U0073><U0069><U006E><U0065>";/
             "<U006E><U0067><U006F><U004C><U0065><U0073><U0069><U0068><U006C><U0061><U006E><U0075>";/
             "<U0075><U006D><U0047><U0071><U0069><U0062><U0065><U006C><U006F>"
- 
-% abmon - The abbreviations for the months 
+
+% abmon - The abbreviations for the months
 % - Jan, Feb, Mat, Apr, Mey, Jun, Jul, Arh, Sep, Okt, Usi, Dis
 abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
             "<U004D><U0061><U0074>";"<U0041><U0070><U0072>";/
@@ -100,8 +104,8 @@ abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
             "<U004A><U0075><U006C>";"<U0041><U0072><U0068>";/
             "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
             "<U0055><U0073><U0069>";"<U0044><U0069><U0073>"
- 
-% mon - The full names of the months - 
+
+% mon - The full names of the months -
 % - Janabari, uFeberbari, uMatjhi, u-Apreli, Meyi, Juni
 %   Julayi, Arhostosi, Septemba, Oktoba, Usinyikhaba, Disemba
 mon         "<U004A><U0061><U006E><U0061><U0062><U0061><U0072><U0069>";/
@@ -126,23 +130,23 @@ d_t_fmt     "<U0025><U0061><U0020><U0025><U002D><U0065><U0020><U0025><U0062><U00
 % "%Y" (year with century as a decimal number),
 % "%T" (24-hour clock time in format HH:MM:SS),
 % "%Z" (Time zone name)
- 
+
 % Date representation to be referenced by the "%x" field descriptor -
 d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
 % "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
- 
+
 % Time representation to be referenced by the "%X" field descriptor -
 t_fmt       "<U0025><U0054>"
 % "%T" (24-hour clock time in format HH:MM:SS)
- 
+
 % Define representation of ante meridiem and post meridiem strings -
 am_pm       "";""
 % The "" mean 'default to "AM" and "PM".
- 
+
 % Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
 t_fmt_ampm  ""
 % The "" means that this format is not supported.
- 
+
 % Date representation not described in ISO/IEC 14652. Comes out as -
 % "%a %b %-e %H:%M:%S %Z %Y" which is default "date" command output
 date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
@@ -157,7 +161,7 @@ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
 % %S - seconds as a decimal number (00 to 59),
 % %Z - time-zone name,
 % %Y - year with century as a decimal number,e.g. 2001.
- 
+
 END LC_TIME
 
 LC_MESSAGES
@@ -195,14 +199,14 @@ name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
 % "Middle names",
 % "Empty string, or <Space>",
 % "Clan names"
- 
+
 % FIXME - define all the following name_*
 % General salutation for any sex
 % name_gen    ""
 
 % Salutation for unmarried females - ""
 % name_miss   ""
- 
+
 % Salutation for males - ""
 % name_mr     ""
 
@@ -217,10 +221,10 @@ END LC_NAME
 LC_ADDRESS
 % Country name in Southern Ndebele - "iSewula Afrika"
 country_name "<U0069><U0053><U0065><U0077><U0075><U006C><U0061><U0020><U0041><U0066><U0072><U0069><U006B><U0061>"
- 
+
 % Abbreviated country postal name - "ZA"
 country_post "<U005A><U0041>"
- 
+
 % UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
 % http://www.unece.org/trans/conventn/disting-signs-5-2001.pdf
 % "ZA"
@@ -228,8 +232,8 @@ country_car   "<U005A><U0041>"
 
 % FIXME define the following correctly
 % country_isbn ""
-% country_num 
- 
+% country_num
+
 % Language name in Southern Ndebele - "IsiNdebele"
 lang_name "<U0049><U0073><U0069><U004E><U0064><U0065><U0062><U0065><U006C><U0065>"
 
@@ -238,7 +242,7 @@ lang_name "<U0049><U0073><U0069><U004E><U0064><U0065><U0062><U0065><U006C><U0065
 % "nr", "nbl"
 lang_ab   "<U006E><U0072>"
 lang_term "<U006E><U0062><U006C>"
- 
+
 % Representation of postal addresses (minus the addressee's name) in South
 % Africa. (Ignored for now)
 postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
@@ -278,4 +282,3 @@ country_ab2   "<U005A><U0041>"
 country_ab3   "<U005A><U0041><U0046>"
 
 END LC_ADDRESS
-
diff --git a/localedata/locales/om_KE b/localedata/locales/om_KE
index 289d27cecc..fcdae86e74 100644
--- a/localedata/locales/om_KE
+++ b/localedata/locales/om_KE
@@ -132,6 +132,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 
diff --git a/localedata/locales/or_IN b/localedata/locales/or_IN
index 7929b2b13f..6170d03823 100644
--- a/localedata/locales/or_IN
+++ b/localedata/locales/or_IN
@@ -34,6 +34,10 @@ END LC_IDENTIFICATION
 %%%%%%%%%%%%%
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 %%%%%%%%%%%%%
diff --git a/localedata/locales/pa_IN b/localedata/locales/pa_IN
index f7b0bf2173..d432a169e5 100644
--- a/localedata/locales/pa_IN
+++ b/localedata/locales/pa_IN
@@ -31,7 +31,7 @@ category  "pa_IN:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "pa_PK"
 END LC_CTYPE
 
 
diff --git a/localedata/locales/pl_PL b/localedata/locales/pl_PL
index 6713f97a79..1b86b2960b 100644
--- a/localedata/locales/pl_PL
+++ b/localedata/locales/pl_PL
@@ -2114,6 +2114,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/pt_BR b/localedata/locales/pt_BR
index 0d34dde076..4640ff54bb 100644
--- a/localedata/locales/pt_BR
+++ b/localedata/locales/pt_BR
@@ -74,7 +74,7 @@ n_sign_posn               1
 END LC_MONETARY
 
 LC_CTYPE
-copy "i18n"
+copy "pt_PT"
 END LC_CTYPE
 
 LC_NUMERIC
diff --git a/localedata/locales/pt_PT b/localedata/locales/pt_PT
index 952e6fb7a4..ceadccaee1 100644
--- a/localedata/locales/pt_PT
+++ b/localedata/locales/pt_PT
@@ -49,6 +49,14 @@ LC_COLLATE
 copy "iso14651_t1"
 END LC_COLLATE
 
+LC_CTYPE
+copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
+END LC_CTYPE
+
 LC_MESSAGES
 yesexpr "<U005E><U005B><U0053><U0073><U0079><U0059><U005D><U002E><U002A>"
 noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
@@ -72,10 +80,6 @@ p_sign_posn               1
 n_sign_posn               1
 END LC_MONETARY
 
-LC_CTYPE
-copy "i18n"
-END LC_CTYPE
-
 LC_NUMERIC
 decimal_point             "<U002C>"
 thousands_sep             ""
diff --git a/localedata/locales/pt_PT@euro b/localedata/locales/pt_PT@euro
index 9a0eb76825..658976a657 100644
--- a/localedata/locales/pt_PT@euro
+++ b/localedata/locales/pt_PT@euro
@@ -51,7 +51,7 @@ copy "pt_PT"
 END LC_MONETARY
 
 LC_CTYPE
-copy "i18n"
+copy "pt_PT"
 END LC_CTYPE
 
 LC_NUMERIC
diff --git a/localedata/locales/ru_RU b/localedata/locales/ru_RU
index 7c0f291d0f..279eaab1ea 100644
--- a/localedata/locales/ru_RU
+++ b/localedata/locales/ru_RU
@@ -66,6 +66,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/ru_UA b/localedata/locales/ru_UA
index f74df991d2..305c83b68f 100644
--- a/localedata/locales/ru_UA
+++ b/localedata/locales/ru_UA
@@ -43,7 +43,7 @@ category  "ru_UA:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "ru_RU"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/rw_RW b/localedata/locales/rw_RW
index be58cea009..165624784a 100644
--- a/localedata/locales/rw_RW
+++ b/localedata/locales/rw_RW
@@ -35,6 +35,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -147,4 +151,3 @@ END LC_TELEPHONE
 LC_MEASUREMENT
 measurement    1
 END LC_MEASUREMENT
-
diff --git a/localedata/locales/se_NO b/localedata/locales/se_NO
index d9eccf54ef..d83721f147 100644
--- a/localedata/locales/se_NO
+++ b/localedata/locales/se_NO
@@ -197,6 +197,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/si_LK b/localedata/locales/si_LK
index 10c2977765..a3f3bce92a 100644
--- a/localedata/locales/si_LK
+++ b/localedata/locales/si_LK
@@ -34,6 +34,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -122,7 +126,7 @@ mon         "<U0DA2><U0DB1><U0DC0><U0DCF><U0DBB><U0DD2>";/
             "<U0DB1><U0DD9><U0DC0><U0DD0><U0DB8><U0DCA><U0DB6><U0DBB><U0DCA>";/
             "<U0DAF><U0DD9><U0DC3><U0DD0><U0DB8><U0DCA><U0DB6><U0DBB><U0DCA>"
 %
-% Equivalent of AM PM 
+% Equivalent of AM PM
 am_pm       "<U0DB4><U0DD9><U002E><U0DC0><U002E>";"<U0DB4><U002E><U0DC0><U002E>"
 %
 % Appropriate date and time representation (use the same as ISO)
@@ -133,7 +137,7 @@ d_t_fmt     "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064><U0020><U00
 % %Y-%m-%d
 d_fmt "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
 %
-% Appropriate time representation 
+% Appropriate time representation
 % %H:%M:%S
 t_fmt       "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
 %
diff --git a/localedata/locales/sk_SK b/localedata/locales/sk_SK
index 28863fa935..afcca128b8 100644
--- a/localedata/locales/sk_SK
+++ b/localedata/locales/sk_SK
@@ -60,6 +60,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 % Triedenie
diff --git a/localedata/locales/sl_SI b/localedata/locales/sl_SI
index 2044b27c58..8f7230d468 100644
--- a/localedata/locales/sl_SI
+++ b/localedata/locales/sl_SI
@@ -2114,6 +2114,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/so_SO b/localedata/locales/so_SO
index 6f3b318843..acaaa3f758 100644
--- a/localedata/locales/so_SO
+++ b/localedata/locales/so_SO
@@ -62,6 +62,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 
diff --git a/localedata/locales/sq_AL b/localedata/locales/sq_AL
index 17f1fdb702..4aeb3dc810 100644
--- a/localedata/locales/sq_AL
+++ b/localedata/locales/sq_AL
@@ -34,6 +34,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ss_ZA b/localedata/locales/ss_ZA
index 8e4de83c4f..405e403597 100644
--- a/localedata/locales/ss_ZA
+++ b/localedata/locales/ss_ZA
@@ -59,6 +59,10 @@ END LC_IDENTIFICATION
 LC_CTYPE
 % Use the characters described in the charmap file "i18n.tgz"
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -86,7 +90,7 @@ abday       "<U0053><U006F><U006E>";/
             "<U004E><U0065>";/
             "<U0048><U006C><U0061>";/
             "<U004D><U0067><U0063>"
- 
+
 % day - The full names of the week days:
 % - Lisontfo, uMsombuluko, Lesibili, Lesitsatfu, Lesine, Lesihlanu, uMgcibelo
 day         "<U004C><U0069><U0073><U006F><U006E><U0074><U0066><U006F>";/
@@ -96,8 +100,8 @@ day         "<U004C><U0069><U0073><U006F><U006E><U0074><U0066><U006F>";/
             "<U004C><U0065><U0073><U0069><U006E><U0065>";/
             "<U004C><U0065><U0073><U0069><U0068><U006C><U0061><U006E><U0075>";/
             "<U0075><U004D><U0067><U0063><U0069><U0062><U0065><U006C><U006F>"
- 
-% abmon - The abbreviations for the months 
+
+% abmon - The abbreviations for the months
 % - Bhi, Van, Vul, Mab, Ink, Nhl, Kho, Ngc, Nyo, Imp, Lwe, Ngo
 abmon       "<U0042><U0068><U0069>";"<U0056><U0061><U006E>";/
             "<U0056><U0075><U006C>";"<U004D><U0061><U0062>";/
@@ -105,8 +109,8 @@ abmon       "<U0042><U0068><U0069>";"<U0056><U0061><U006E>";/
             "<U004B><U0068><U006F>";"<U004E><U0067><U0063>";/
             "<U004E><U0079><U006F>";"<U0049><U006D><U0070>";/
             "<U004C><U0077><U0065>";"<U004E><U0067><U006F>"
- 
-% mon - The full names of the months - 
+
+% mon - The full names of the months -
 % - Bhimbidvwane, iNdlovane, iNdlovulenkhulu, Mabasa, Inkhwenkhweti, iNhlaba
 %   Kholwane, iNgci, iNyoni, Impala, Lweti, iNgongoni
 mon         "<U0042><U0068><U0069><U006D><U0062><U0069><U0064><U0076><U0077><U0061><U006E><U0065>";/
@@ -121,7 +125,7 @@ mon         "<U0042><U0068><U0069><U006D><U0062><U0069><U0064><U0076><U0077><U00
             "<U0049><U006D><U0070><U0061><U006C><U0061>";/
             "<U004C><U0077><U0065><U0074><U0069>";/
             "<U0069><U004E><U0067><U006F><U006E><U0067><U006F><U006E><U0069>"
- 
+
 % Abreviated date and time representation to be referenced by the "%c" field descriptor -
 d_t_fmt     "<U0025><U0061><U0020><U0025><U002D><U0065><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
 %
@@ -131,23 +135,23 @@ d_t_fmt     "<U0025><U0061><U0020><U0025><U002D><U0065><U0020><U0025><U0062><U00
 % "%Y" (year with century as a decimal number),
 % "%T" (24-hour clock time in format HH:MM:SS),
 % "%Z" (Time zone name)
- 
+
 % Date representation to be referenced by the "%x" field descriptor -
 d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
 % "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
- 
+
 % Time representation to be referenced by the "%X" field descriptor -
 t_fmt       "<U0025><U0054>"
 % "%T" (24-hour clock time in format HH:MM:SS)
- 
+
 % Define representation of ante meridiem and post meridiem strings -
 am_pm       "";""
 % The "" mean 'default to "AM" and "PM".
- 
+
 % Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
 t_fmt_ampm  ""
 % The "" means that this format is not supported.
- 
+
 % Date representation not described in ISO/IEC 14652. Comes out as -
 % "%a %b %-e %H:%M:%S %Z %Y" which is default "date" command output
 date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
@@ -162,7 +166,7 @@ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
 % %S - seconds as a decimal number (00 to 59),
 % %Z - time-zone name,
 % %Y - year with century as a decimal number,e.g. 2001.
- 
+
 END LC_TIME
 
 LC_MESSAGES
@@ -200,14 +204,14 @@ name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
 % "Middle names",
 % "Empty string, or <Space>",
 % "Clan names"
- 
+
 % FIXME - define all the following name_*
 % General salutation for any sex
 % name_gen    ""
 
 % Salutation for unmarried females - ""
 % name_miss   ""
- 
+
 % Salutation for males - ""
 % name_mr     ""
 
@@ -222,10 +226,10 @@ END LC_NAME
 LC_ADDRESS
 % Country name in Swati - "iNingizimu Afrika"
 country_name "<U0069><U004E><U0069><U006E><U0067><U0069><U007A><U0069><U006D><U0075><U0020><U0041><U0066><U0072><U0069><U006B><U0061>"
- 
+
 % Abbreviated country postal name - "ZA"
 country_post "<U005A><U0041>"
- 
+
 % UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
 % http://www.unece.org/trans/conventn/disting-signs-5-2001.pdf
 % "ZA"
@@ -233,7 +237,7 @@ country_car   "<U005A><U0041>"
 
 % FIXME define the following correctly
 % country_isbn ""
- 
+
 % Language name in Swati - "SiSwati"
 lang_name "<U0053><U0069><U0053><U0077><U0061><U0074><U0069>"
 
@@ -242,7 +246,7 @@ lang_name "<U0053><U0069><U0053><U0077><U0061><U0074><U0069>"
 % "ss", ssw"
 lang_ab   "<U0073><U0073>"
 lang_term "<U0073><U0073><U0077>"
- 
+
 % Representation of postal addresses (minus the addressee's name) in South
 % Africa. (Ignored for now)
 postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
@@ -282,4 +286,3 @@ country_ab2   "<U005A><U0041>"
 country_ab3   "<U005A><U0041><U0046>"
 
 END LC_ADDRESS
-
diff --git a/localedata/locales/st_ZA b/localedata/locales/st_ZA
index d36eb9ab2c..17a740bff0 100644
--- a/localedata/locales/st_ZA
+++ b/localedata/locales/st_ZA
@@ -55,6 +55,10 @@ END LC_IDENTIFICATION
 LC_CTYPE
 % Use the characters described in the charmap file "i18n.tgz"
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -82,7 +86,7 @@ abday       "<U0053><U006F><U006E>";/
             "<U004E><U0065>";/
             "<U0048><U006C><U0061>";/
             "<U004D><U006F><U0071>"
- 
+
 % day - The full names of the week days:
 % - Sontaha, Mantaha, Labobedi, Laboraro, Labone, Labohlano, Moqebelo
 day         "<U0053><U006F><U006E><U0074><U0061><U0068><U0061>";/
@@ -92,8 +96,8 @@ day         "<U0053><U006F><U006E><U0074><U0061><U0068><U0061>";/
             "<U004C><U0061><U0062><U006F><U006E><U0065>";/
             "<U004C><U0061><U0062><U006F><U0068><U006C><U0061><U006E><U006F>";/
             "<U004D><U006F><U0071><U0065><U0062><U0065><U006C><U006F>"
- 
-% abmon - The abbreviations for the months 
+
+% abmon - The abbreviations for the months
 % - Phe, Hla, Tlh, Mme, Mot, Jan, Upu, Pha, Leo, Mph, Pud, Tsh
 abmon       "<U0050><U0068><U0065>";"<U0048><U006C><U0061>";/
             "<U0054><U006C><U0048>";"<U004D><U006D><U0065>";/
@@ -101,9 +105,9 @@ abmon       "<U0050><U0068><U0065>";"<U0048><U006C><U0061>";/
             "<U0055><U0070><U0075>";"<U0050><U0068><U0061>";/
             "<U004C><U0065><U006F>";"<U004D><U0070><U0068>";/
             "<U0050><U0075><U0064>";"<U0054><U0073><U0068>"
- 
-% mon - The full names of the months - 
-% - Pherekgong, Hlakola, Tlhakubele, Mmese, Motsheanong, Phupjane, 
+
+% mon - The full names of the months -
+% - Pherekgong, Hlakola, Tlhakubele, Mmese, Motsheanong, Phupjane,
 %   Phupu, Phato, Leotse, Mphalane, Pudungwana, Tshitwe
 mon         "<U0050><U0068><U0065><U0072><U0065><U006B><U0067><U006F><U006E><U0067>";/
             "<U0048><U006C><U0061><U006B><U006F><U006C><U0061>";/
@@ -117,7 +121,7 @@ mon         "<U0050><U0068><U0065><U0072><U0065><U006B><U0067><U006F><U006E><U00
             "<U004D><U0070><U0068><U0061><U006C><U0061><U006E><U0065>";/
             "<U0050><U0075><U0064><U0075><U006E><U0067><U0077><U0061><U006E><U0061>";/
             "<U0054><U0073><U0068><U0069><U0074><U0077><U0065>"
- 
+
 % Abreviated date and time representation to be referenced by the "%c" field descriptor -
 d_t_fmt     "<U0025><U0061><U0020><U0025><U002D><U0065><U0020><U0025><U0062>/
 <U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
@@ -128,23 +132,23 @@ d_t_fmt     "<U0025><U0061><U0020><U0025><U002D><U0065><U0020><U0025><U0062>/
 % "%Y" (year with century as a decimal number),
 % "%T" (24-hour clock time in format HH:MM:SS),
 % "%Z" (Time zone name)
- 
+
 % Date representation to be referenced by the "%x" field descriptor -
 d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
 % "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
- 
+
 % Time representation to be referenced by the "%X" field descriptor -
 t_fmt       "<U0025><U0054>"
 % "%T" (24-hour clock time in format HH:MM:SS)
- 
+
 % Define representation of ante meridiem and post meridiem strings -
 am_pm       "";""
 % The "" mean 'default to "AM" and "PM".
- 
+
 % Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
 t_fmt_ampm  ""
 % The "" means that this format is not supported.
- 
+
 % Date representation not described in ISO/IEC 14652. Comes out as -
 % "%a %b %-e %H:%M:%S %Z %Y" which is default "date" command output
 date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
@@ -159,7 +163,7 @@ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
 % %S - seconds as a decimal number (00 to 59),
 % %Z - time-zone name,
 % %Y - year with century as a decimal number,e.g. 2001.
- 
+
 END LC_TIME
 
 LC_MESSAGES
@@ -197,14 +201,14 @@ name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
 % "Middle names",
 % "Empty string, or <Space>",
 % "Clan names"
- 
+
 % FIXME - define all the following name_*
 % General salutation for any sex
 % name_gen    ""
 
 % Salutation for unmarried females - ""
 % name_miss   ""
- 
+
 % Salutation for males - ""
 % name_mr     ""
 
@@ -219,13 +223,13 @@ END LC_NAME
 LC_ADDRESS
 % Country name in Sotho - "Afrika Borwa"
 country_name "<U0041><U0066><U0072><U0069><U006B><U0061><U0020><U0042><U006F><U0072><U0077><U0061>"
- 
+
 % Abbreviated country postal name - "ZA"
 country_post "<U005A><U0041>"
- 
+
 % FIXME define the following correctly
 % country_isbn ""
- 
+
 % Language name in Sotho - "Sesotho"
 lang_name "<U0053><U0065><U0073><U006F><U0074><U0068><U006F>"
 
@@ -239,7 +243,7 @@ country_car   "<U005A><U0041>"
 % "st", "sot"
 lang_ab   "<U0073><U0074>"
 lang_term "<U0073><U006F><U0074>"
- 
+
 % Representation of postal addresses (minus the addressee's name) in South
 % Africa. (Ignored for now)
 postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
@@ -279,4 +283,3 @@ country_ab2   "<U005A><U0041>"
 country_ab3   "<U005A><U0041><U0046>"
 
 END LC_ADDRESS
-
diff --git a/localedata/locales/sv_FI b/localedata/locales/sv_FI
index 711fd80609..e3cbc39cbf 100644
--- a/localedata/locales/sv_FI
+++ b/localedata/locales/sv_FI
@@ -47,7 +47,7 @@ category  "sv_FI:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "sv_SE"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/sv_FI@euro b/localedata/locales/sv_FI@euro
index f524e0e1e0..095ef677ed 100644
--- a/localedata/locales/sv_FI@euro
+++ b/localedata/locales/sv_FI@euro
@@ -39,7 +39,7 @@ category  "sv_FI@euro:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "sv_FI"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/sv_SE b/localedata/locales/sv_SE
index 25af3f81db..8daded3d38 100644
--- a/localedata/locales/sv_SE
+++ b/localedata/locales/sv_SE
@@ -109,6 +109,10 @@ END LC_COLLATE
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MONETARY
diff --git a/localedata/locales/ta_IN b/localedata/locales/ta_IN
index e432051cd4..df68390261 100644
--- a/localedata/locales/ta_IN
+++ b/localedata/locales/ta_IN
@@ -36,6 +36,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/te_IN b/localedata/locales/te_IN
index 0dca321519..f833651a82 100644
--- a/localedata/locales/te_IN
+++ b/localedata/locales/te_IN
@@ -35,6 +35,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -186,14 +190,13 @@ LC_ADDRESS
 % This is the ISO_IEC TR14652 Locale definition for the LC_ADDRESS category
 % generated by IBM Basic CountryPack Transformer.
 
-% postal_fmt    "%n%N%a%N%d%N%f%N%r%t%e%N%h%t%b%N%s%t%l%N%T%t%z%N%S%N%c"
-postal_fmt      "<U0025><U006E><U0025><U004E>/
-<U0025><U0061><U0025><U004E>/
+% postal_fmt    "%a%N%d%N%f%N%r%t%e%N%h%t%b%N%s%t%N%T%t%z%N%S%N%c"
+postal_fmt      "<U0025><U0061><U0025><U004E>/
 <U0025><U0064><U0025><U004E>/
 <U0025><U0066><U0025><U004E>/
 <U0025><U0072><U0025><U0074><U0025><U0065><U0025><U004E>/
 <U0025><U0068><U0025><U0074><U0025><U0062><U0025><U004E>/
-<U0025><U0073><U0025><U0074><U0025><U006C><U0025><U004E>/
+<U0025><U0073><U0025><U0074><U0025><U004E>/
 <U0025><U0054><U0025><U0074><U0025><U007A><U0025><U004E>/
 <U0025><U0053><U0025><U004E>/
 <U0025><U0063>"
diff --git a/localedata/locales/tg_TJ b/localedata/locales/tg_TJ
index 5cd8422259..fbed4e35fe 100644
--- a/localedata/locales/tg_TJ
+++ b/localedata/locales/tg_TJ
@@ -2,7 +2,7 @@ comment_char %
 escape_char  /
 %
 % Tajik Language Locale for Tajikistan
-% Source: 
+% Source:
 % Contact: Pablo Saratxaga, Roger Kovacs
 % Email: <pablo@mandrakesoft.com>, <ROGERKO@micromotion.com>
 % Language: tg
@@ -50,6 +50,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -126,7 +130,7 @@ noexpr  "<U005E><U005B><U041D><U043D><U004E><U006E><U005D><U002E><U002A>"
 END LC_MESSAGES
 
 LC_MONETARY
-int_curr_symbol           "<U0052><U0055><U0053><U0020>"
+int_curr_symbol           "<U0054><U004A><U0053><U0020>"
 currency_symbol           "<U0440><U0443><U0431>"
 mon_decimal_point         "<U002E>"
 mon_thousands_sep         "<U0020>"
@@ -227,4 +231,3 @@ LC_TELEPHONE
 % FIXME
 copy "en_DK"
 END LC_TELEPHONE
-
diff --git a/localedata/locales/th_TH b/localedata/locales/th_TH
index 3eaa5bb41d..5bcf10e57a 100644
--- a/localedata/locales/th_TH
+++ b/localedata/locales/th_TH
@@ -73,6 +73,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ti_ET b/localedata/locales/ti_ET
index d6158b037a..3c714e954d 100644
--- a/localedata/locales/ti_ET
+++ b/localedata/locales/ti_ET
@@ -859,6 +859,8 @@ translit_start
 <U137A>    <U0060><U0039><U0030>
 <U137B>    <U0060><U0031><U0030><U0030>
 <U137C>    <U0060><U0031><U0030><U0030><U0030><U0030>
+
+include  "translit_combining";""
 translit_end
 %
 END LC_CTYPE
diff --git a/localedata/locales/tn_ZA b/localedata/locales/tn_ZA
index c663811572..c5f3bb845b 100644
--- a/localedata/locales/tn_ZA
+++ b/localedata/locales/tn_ZA
@@ -12,7 +12,7 @@ comment_char  %
 %         Art and Culture's: Multilingual Mathematics Dictionary
 % 0.3 (2005-06-21):
 %     2005-06-21 Dwayne Bailey <dwayne@translate.org.za>
-%       - Corrected short month names to correspond to long 
+%       - Corrected short month names to correspond to long
 %         month names (missed in 2004-02-27 corrections)
 % 0.2 (2004-11-08):
 %     2004-11-08 Dwayne Bailey <dwayne@translate.org.za>
@@ -60,6 +60,10 @@ END LC_IDENTIFICATION
 LC_CTYPE
 % Use the characters described in the charmap file "i18n.tgz"
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -87,7 +91,7 @@ abday       "<U0054><U0073><U0068>";/
             "<U004E><U0065>";/
             "<U0054><U006C><U0068>";/
             "<U004D><U0061><U0074>"
- 
+
 % day - The full names of the week days:
 % - laTshipi, Mosupologo, Labobedi, Laboraro, Labone, Labotlhano, Lamatlhatso
 day         "<U006C><U0061><U0054><U0073><U0068><U0069><U0070><U0069>";/
@@ -97,8 +101,8 @@ day         "<U006C><U0061><U0054><U0073><U0068><U0069><U0070><U0069>";/
             "<U004C><U0061><U0062><U006F><U006E><U0065>";/
             "<U004C><U0061><U0062><U006F><U0074><U006C><U0068><U0061><U006E><U006F>";/
             "<U004C><U0061><U006D><U0061><U0074><U006C><U0068><U0061><U0074><U0073><U006F>"
- 
-% abmon - The abbreviations for the months 
+
+% abmon - The abbreviations for the months
 % - Fer, Tlh, Mop, Mor, Mot, See, Phu, Pha, Lwe, Dip, Ngw, Sed
 abmon       "<U0046><U0065><U0072>";"<U0054><U006C><U0068>";/
             "<U004D><U006F><U0070>";"<U004D><U006F><U0072>";/
@@ -106,8 +110,8 @@ abmon       "<U0046><U0065><U0072>";"<U0054><U006C><U0068>";/
             "<U0050><U0068><U0075>";"<U0050><U0068><U0061>";/
             "<U004C><U0077><U0065>";"<U0044><U0069><U0070>";/
             "<U004E><U0067><U0077>";"<U0053><U0065><U0064>"
- 
-% mon - The full names of the months - 
+
+% mon - The full names of the months -
 % - Ferikgong, Tlhakole, Mopitlwe, Moranang, Motsheganong, Seetebosigo
 %   Phukwi, Phatwe, Lwetse, Diphalane, Ngwanatsele, Sedimonthole
 mon         "<U0046><U0065><U0072><U0069><U006B><U0067><U006F><U006E><U0067>";/
@@ -133,23 +137,23 @@ d_t_fmt     "<U0025><U0061><U0020><U0025><U002D><U0065><U0020><U0025><U0062><U00
 % "%Y" (year with century as a decimal number),
 % "%T" (24-hour clock time in format HH:MM:SS),
 % "%Z" (Time zone name)
- 
+
 % Date representation to be referenced by the "%x" field descriptor -
 d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
 % "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
- 
+
 % Time representation to be referenced by the "%X" field descriptor -
 t_fmt       "<U0025><U0054>"
 % "%T" (24-hour clock time in format HH:MM:SS)
- 
+
 % Define representation of ante meridiem and post meridiem strings -
 am_pm       "";""
 % The "" mean 'default to "AM" and "PM".
- 
+
 % Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
 t_fmt_ampm  ""
 % The "" means that this format is not supported.
- 
+
 % Date representation not described in ISO/IEC 14652. Comes out as -
 % "%a %b %-e %H:%M:%S %Z %Y" which is default "date" command output
 date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
@@ -164,7 +168,7 @@ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
 % %S - seconds as a decimal number (00 to 59),
 % %Z - time-zone name,
 % %Y - year with century as a decimal number,e.g. 2001.
- 
+
 END LC_TIME
 
 LC_MESSAGES
@@ -202,14 +206,14 @@ name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
 % "Middle names",
 % "Empty string, or <Space>",
 % "Clan names"
- 
+
 % FIXME - define all the following name_*
 % General salutation for any sex
 % name_gen    ""
 
 % Salutation for unmarried females - ""
 % name_miss   ""
- 
+
 % Salutation for males - ""
 % name_mr     ""
 
@@ -225,10 +229,10 @@ LC_ADDRESS
 % Country name in Tswana - "Aforika Borwa"
 country_name "<U0041><U0066><U006F><U0072><U0069><U006B><U0061><U0020>/
 <U0042><U006F><U0072><U0077><U0061>"
- 
+
 % Abbreviated country postal name - "ZA"
 country_post "<U005A><U0041>"
- 
+
 % UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
 % http://www.unece.org/trans/conventn/disting-signs-5-2001.pdf
 % "ZA"
@@ -236,7 +240,7 @@ country_car   "<U005A><U0041>"
 
 % FIXME define the following correctly
 % country_isbn ""
- 
+
 % Language name in Tswana - "Setswana"
 lang_name "<U0053><U0065><U0074><U0073><U0077><U0061><U006E><U0061>"
 
@@ -245,7 +249,7 @@ lang_name "<U0053><U0065><U0074><U0073><U0077><U0061><U006E><U0061>"
 % "tn", "tsn"
 lang_ab   "<U0074><U006E>"
 lang_term "<U0074><U0073><U006E>"
- 
+
 % Representation of postal addresses (minus the addressee's name) in South
 % Africa. (Ignored for now)
 postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
@@ -285,4 +289,3 @@ country_ab2   "<U005A><U0041>"
 country_ab3   "<U005A><U0041><U0046>"
 
 END LC_ADDRESS
-
diff --git a/localedata/locales/tr_TR b/localedata/locales/tr_TR
index 22b76caf05..64b726e2d3 100644
--- a/localedata/locales/tr_TR
+++ b/localedata/locales/tr_TR
@@ -3465,6 +3465,9 @@ class "combining_level3"; /
 
 % END modified i18n LC_CTYPE
 
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_MESSAGES
diff --git a/localedata/locales/ts_ZA b/localedata/locales/ts_ZA
index 030e7f714c..95aff1953e 100644
--- a/localedata/locales/ts_ZA
+++ b/localedata/locales/ts_ZA
@@ -55,6 +55,10 @@ END LC_IDENTIFICATION
 LC_CTYPE
 % Use the characters described in the charmap file "i18n.tgz"
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -82,7 +86,7 @@ abday       "<U0053><U006F><U006E>";/
             "<U004E><U0065>";/
             "<U0054><U006C><U0068>";/
             "<U004D><U0075><U0067>"
- 
+
 % day - The full names of the week days:
 % - Sonto, Musumbhunuku, Ravumbirhi, Ravunharhu, Ravumune, Ravuntlhanu, Mugqivela
 day         "<U0053><U006F><U006E><U0074><U006F>";/
@@ -92,9 +96,9 @@ day         "<U0053><U006F><U006E><U0074><U006F>";/
             "<U0052><U0061><U0076><U0075><U006D><U0075><U006E><U0065>";/
             "<U0052><U0061><U0076><U0075><U006E><U0074><U006C><U0068><U0061><U006E><U0075>";/
             "<U004D><U0075><U0067><U0071><U0069><U0076><U0065><U006C><U0061>"
-            
- 
-% abmon - The abbreviations for the months 
+
+
+% abmon - The abbreviations for the months
 % - Sun, Yan, Kul, Dzi, Mud, Kho, Maw, Mha, Ndz, Nhl, Huk, N'w
 abmon       "<U0053><U0075><U006E>";"<U0059><U0061><U006E>";/
             "<U004B><U0075><U006C>";"<U0044><U007A><U0069>";/
@@ -102,8 +106,8 @@ abmon       "<U0053><U0075><U006E>";"<U0059><U0061><U006E>";/
             "<U004D><U0061><U0077>";"<U004D><U0068><U0061>";/
             "<U004E><U0064><U007A>";"<U004E><U0068><U006C>";/
             "<U0048><U0075><U006B>";"<U004E><U0027><U0077>"
- 
-% mon - The full names of the months - 
+
+% mon - The full names of the months -
 % - Sunguti, Nyenyenyani, Nyenyankulu, Dzivamisoko, Mudyaxihi, Khotavuxika
 %   Mawuwani, Mhawuri, Ndzhati, Nhlangula, Hukuri, N'wendzamhala
 mon         "<U0053><U0075><U006E><U0067><U0075><U0074><U0069>";/
@@ -128,23 +132,23 @@ d_t_fmt     "<U0025><U0061><U0020><U0025><U002D><U0065><U0020><U0025><U0062><U00
 % "%Y" (year with century as a decimal number),
 % "%T" (24-hour clock time in format HH:MM:SS),
 % "%Z" (Time zone name)
- 
+
 % Date representation to be referenced by the "%x" field descriptor -
 d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
 % "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
- 
+
 % Time representation to be referenced by the "%X" field descriptor -
 t_fmt       "<U0025><U0054>"
 % "%T" (24-hour clock time in format HH:MM:SS)
- 
+
 % Define representation of ante meridiem and post meridiem strings -
 am_pm       "";""
 % The "" mean 'default to "AM" and "PM".
- 
+
 % Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
 t_fmt_ampm  ""
 % The "" means that this format is not supported.
- 
+
 % Date representation not described in ISO/IEC 14652. Comes out as -
 % "%a %b %-e %H:%M:%S %Z %Y" which is default "date" command output
 date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
@@ -159,7 +163,7 @@ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
 % %S - seconds as a decimal number (00 to 59),
 % %Z - time-zone name,
 % %Y - year with century as a decimal number,e.g. 2001.
- 
+
 END LC_TIME
 
 LC_MESSAGES
@@ -197,14 +201,14 @@ name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
 % "Middle names",
 % "Empty string, or <Space>",
 % "Clan names"
- 
+
 % FIXME - define all the following name_*
 % General salutation for any sex
 % name_gen    ""
 
 % Salutation for unmarried females - ""
 % name_miss   ""
- 
+
 % Salutation for males - ""
 % name_mr     ""
 
@@ -219,10 +223,10 @@ END LC_NAME
 LC_ADDRESS
 % Country name in Tsonga - "Afrika Dzonga"
 country_name "<U0041><U0066><U0072><U0069><U006B><U0061><U0020><U0044><U007A><U006F><U006E><U0067><U0061>"
- 
+
 % Abbreviated country postal name - "ZA"
 country_post "<U005A><U0041>"
- 
+
 % UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
 % http://www.unece.org/trans/conventn/disting-signs-5-2001.pdf
 % "ZA"
@@ -230,7 +234,7 @@ country_car   "<U005A><U0041>"
 
 % FIXME define the following correctly
 % country_isbn ""
- 
+
 % Language name in Tsonga - "Xitsonga"
 lang_name "<U0058><U0069><U0074><U0073><U006F><U006E><U0067><U0061>"
 
@@ -239,7 +243,7 @@ lang_name "<U0058><U0069><U0074><U0073><U006F><U006E><U0067><U0061>"
 % "ts", "tso"
 lang_ab   "<U0074><U0073>"
 lang_term "<U0074><U0073><U006F>"
- 
+
 % Representation of postal addresses (minus the addressee's name) in South
 % Africa. (Ignored for now)
 postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
@@ -279,4 +283,3 @@ country_ab2   "<U005A><U0041>"
 country_ab3   "<U005A><U0041><U0046>"
 
 END LC_ADDRESS
-
diff --git a/localedata/locales/tt_RU b/localedata/locales/tt_RU
index 858cfb8f4f..3bac711a8f 100644
--- a/localedata/locales/tt_RU
+++ b/localedata/locales/tt_RU
@@ -52,6 +52,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/uk_UA b/localedata/locales/uk_UA
index eb482935e2..8a48b65252 100644
--- a/localedata/locales/uk_UA
+++ b/localedata/locales/uk_UA
@@ -46,6 +46,10 @@ END LC_IDENTIFICATION
 
 LC_CTYPE
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/ve_ZA b/localedata/locales/ve_ZA
index ff6d115812..5996810e73 100644
--- a/localedata/locales/ve_ZA
+++ b/localedata/locales/ve_ZA
@@ -58,6 +58,10 @@ END LC_IDENTIFICATION
 LC_CTYPE
 % Use the characters described in the charmap file "i18n.tgz"
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -85,7 +89,7 @@ abday       "<U0053><U0077><U006F>";/
             "<U1E4B><U0061>";/
             "<U1E70><U0061><U006E>";/
             "<U004D><U0075><U0067>"
- 
+
 % day - The full names of the week days:
 % - Swondaha, Musumbuluwo, L^avhuvhili, L^avhuraru, L^avhun^a, L^avhut^anu, Mugivhela
 day         "<U0053><U0077><U006F><U006E><U0064><U0061><U0068><U0061>";/
@@ -95,8 +99,8 @@ day         "<U0053><U0077><U006F><U006E><U0064><U0061><U0068><U0061>";/
             "<U1E3C><U0061><U0076><U0068><U0075><U1E4B><U0061>";/
             "<U1E3C><U0061><U0076><U0068><U0075><U1E71><U0061><U006E><U0075>";/
             "<U004D><U0075><U0067><U0069><U0076><U0068><U0065><U006C><U0061>"
- 
-% abmon - The abbreviations for the months 
+
+% abmon - The abbreviations for the months
 % - Pha, Luh, Fam, Lam, Shu, Lwi, Lwa, Ngu, Khu, Tsh, L^ar, Nye
 abmon       "<U0050><U0068><U0061>";"<U004C><U0075><U0068>";/
             "<U0046><U0061><U006D>";"<U004C><U0061><U006D>";/
@@ -104,8 +108,8 @@ abmon       "<U0050><U0068><U0061>";"<U004C><U0075><U0068>";/
             "<U004C><U0077><U0061>";"<U004E><U0067><U0075>";/
             "<U004B><U0068><U0075>";"<U0054><U0073><U0068>";/
             "<U1E3C><U0061><U0072>";"<U004E><U0079><U0065>"
- 
-% mon - The full names of the months - 
+
+% mon - The full names of the months -
 % - Phando, Luhuhi, T^hafamuhwe, Lambamai, Shundunthule, Fulwi
 %   Fulwana, T^hangule, Khubvumedzi, Tshimedzi, L^ara, Nyendavhusiku
 mon         "<U0050><U0068><U0061><U006E><U0064><U006F>";/
@@ -120,7 +124,7 @@ mon         "<U0050><U0068><U0061><U006E><U0064><U006F>";/
             "<U0054><U0073><U0068><U0069><U006D><U0065><U0064><U007A><U0069>";/
             "<U1E3C><U0061><U0072><U0061>";/
             "<U004E><U0079><U0065><U006E><U0064><U0061><U0076><U0068><U0075><U0073><U0069><U006B><U0075>"
- 
+
 % Abreviated date and time representation to be referenced by the "%c" field descriptor -
 d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
 %
@@ -130,23 +134,23 @@ d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U00
 % "%Y" (year with century as a decimal number),
 % "%T" (24-hour clock time in format HH:MM:SS),
 % "%Z" (Time zone name)
- 
+
 % Date representation to be referenced by the "%x" field descriptor -
 d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
 % "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
- 
+
 % Time representation to be referenced by the "%X" field descriptor -
 t_fmt       "<U0025><U0054>"
 % "%T" (24-hour clock time in format HH:MM:SS)
- 
+
 % Define representation of ante meridiem and post meridiem strings -
 am_pm       "";""
 % The "" mean 'default to "AM" and "PM".
- 
+
 % Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
 t_fmt_ampm  ""
 % The "" means that this format is not supported.
- 
+
 % Date representation not described in ISO/IEC 14652. Comes out as -
 % "%a %b %e %H:%M:%S %Z %Y" which is default "date" command output
 date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
@@ -161,7 +165,7 @@ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
 % %S - seconds as a decimal number (00 to 59),
 % %Z - time-zone name,
 % %Y - year with century as a decimal number,e.g. 2001.
- 
+
 END LC_TIME
 
 LC_MESSAGES
@@ -199,14 +203,14 @@ name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
 % "Middle names",
 % "Empty string, or <Space>",
 % "Clan names"
- 
+
 % FIXME - define all the following name_*
 % General salutation for any sex
 % name_gen    ""
 
 % Salutation for unmarried females - ""
 % name_miss   ""
- 
+
 % Salutation for males - ""
 % name_mr     ""
 
@@ -222,10 +226,10 @@ LC_ADDRESS
 % Country name in Venda - "Afurika Tshipembe"
 country_name "<U0041><U0066><U0075><U0072><U0069><U006B><U0061><U0020>/
 <U0054><U0073><U0068><U0069><U0070><U0065><U006D><U0062><U0065>"
- 
+
 % Abbreviated country postal name - "ZA"
 country_post "<U005A><U0041>"
- 
+
 % UN Geneve 1949:68 Distinguishing signs of vehicles in international traffic
 % http://www.unece.org/trans/conventn/disting-signs-5-2001.pdf
 % "ZA"
@@ -233,7 +237,7 @@ country_car   "<U005A><U0041>"
 
 % FIXME define the following correctly
 % country_isbn ""
- 
+
 % Language name in Venda - "Tshivend^a"
 lang_name "<U0054><U0073><U0068><U0069><U0076><U0065><U006E><U1E13><U0061>"
 
@@ -245,7 +249,7 @@ lang_term       "<U0076><U0065><U006E>"
 % FIXME there seems to be an error with the following but am unable to
 % determine what as it works correctly in other locale files
 % lang_lib        "<U0076><U0065><U006E>"
- 
+
 % Representation of postal addresses (minus the addressee's name) in South
 % Africa. (Ignored for now)
 postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
@@ -285,4 +289,3 @@ country_ab2   "<U005A><U0041>"
 country_ab3   "<U005A><U0041><U0046>"
 
 END LC_ADDRESS
-
diff --git a/localedata/locales/vi_VN b/localedata/locales/vi_VN
index 29be5dcd5e..28d760049d 100644
--- a/localedata/locales/vi_VN
+++ b/localedata/locales/vi_VN
@@ -50,6 +50,8 @@ LC_CTYPE
 copy "i18n"
 translit_start
 
+include  "translit_combining";""
+
 % dong sign -> d// -> dd
 <U20AB> "<U0111>";"<U0064><U0064>"
 
@@ -352,4 +354,3 @@ END LC_TELEPHONE
 LC_MEASUREMENT
 measurement 1
 END LC_MEASUREMENT
-
diff --git a/localedata/locales/xh_ZA b/localedata/locales/xh_ZA
index 1f61d17a82..218cdb1fb5 100644
--- a/localedata/locales/xh_ZA
+++ b/localedata/locales/xh_ZA
@@ -57,6 +57,10 @@ END LC_IDENTIFICATION
 LC_CTYPE
 % Use the characters described in the charmap file "i18n.tgz"
 copy "i18n"
+
+translit_start
+include "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -94,7 +98,7 @@ day         "<U0069><U0043><U0061><U0077><U0061>";/
             "<U006C><U0077><U0065><U0073><U0069><U0048><U006C><U0061><U006E><U0075>";/
             "<U0075><U004D><U0067><U0071><U0069><U0062><U0065><U006C><U006F>"
 %
-% The abbreviations for the months 
+% The abbreviations for the months
 % - Mqu, Mdu, Kwi, Tsh, Can, Sil, Kha, Thu, Msi, Dwa, Nka, Mng
 abmon       "<U004D><U0071><U0075>";"<U004D><U0064><U0075>";/
             "<U004B><U0077><U0069>";"<U0054><U0073><U0068>";/
@@ -103,7 +107,7 @@ abmon       "<U004D><U0071><U0075>";"<U004D><U0064><U0075>";/
             "<U004D><U0073><U0069>";"<U0044><U0077><U0061>";/
             "<U004E><U006B><U0061>";"<U004D><U006E><U0067>"
 %
-% The full names of the months - 
+% The full names of the months -
 % - eyoMqungu, eyoMdumba, eyoKwindla, uTshazimpuzi, uCanzibe, eyeSilimela
 %   eyeKhala, eyeThupa, eyoMsintsi, eyeDwarha, eyeNkanga, eyoMnga
 mon         "<U0065><U0079><U006F><U004D><U0071><U0075><U006E><U0067><U0075>";/
@@ -145,8 +149,8 @@ am_pm       "";""
 % The "" means that this format is not supported.
 t_fmt_ampm  ""
 %
-% Date representation not described in ISO/IEC 14652. 
-% Comes out as - "%a %b %-e %H:%M:%S %Z %Y" 
+% Date representation not described in ISO/IEC 14652.
+% Comes out as - "%a %b %-e %H:%M:%S %Z %Y"
 date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U002D><U0065>/
 <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
 <U0025><U005A><U0020><U0025><U0059>"
@@ -271,4 +275,3 @@ country_ab2   "<U005A><U0041>"
 country_ab3   "<U005A><U0041><U0046>"
 
 END LC_ADDRESS
-
diff --git a/localedata/locales/zh_CN b/localedata/locales/zh_CN
index 89fcf3b819..3f8acd7393 100644
--- a/localedata/locales/zh_CN
+++ b/localedata/locales/zh_CN
@@ -49,6 +49,10 @@ LC_CTYPE
 
 copy "i18n"
 
+translit_start
+include  "translit_combining";""
+translit_end
+
 class	"hanzi"; /
 %	<U3400>..<U4DBF>;/
 	<U4E00>..<U9FA5>;/
diff --git a/localedata/locales/zh_HK b/localedata/locales/zh_HK
index b4798eb878..42dccc28d8 100644
--- a/localedata/locales/zh_HK
+++ b/localedata/locales/zh_HK
@@ -32,7 +32,7 @@ category  "zh_HK:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "zh_CN"
 END LC_CTYPE
 
 LC_COLLATE
diff --git a/localedata/locales/zh_SG b/localedata/locales/zh_SG
index 60c985c072..7be5b647a6 100644
--- a/localedata/locales/zh_SG
+++ b/localedata/locales/zh_SG
@@ -32,7 +32,7 @@ category  "zh_SG:2000";LC_TELEPHONE
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
+copy "zh_CN"
 END LC_CTYPE
 
 LC_COLLATE
@@ -46,7 +46,7 @@ END LC_COLLATE
 LC_MONETARY
 % This is the POSIX Locale definition the LC_MONETARY category
 % generated by IBM Basic CountryPack Transformer.
-% These are generated based on XML base Locale defintion file 
+% These are generated based on XML base Locale defintion file
 % for IBM Class for Unicode.
 %
 int_curr_symbol       "<U0053><U0047><U0044><U0020>"
@@ -81,7 +81,7 @@ END LC_NUMERIC
 LC_TIME
 % This is the POSIX Locale definition for the LC_TIME category
 % generated by IBM Basic CountryPack Transformer.
-% These are generated based on XML base Locale difintion file 
+% These are generated based on XML base Locale difintion file
 % for IBM Class for Unicode.
 %
 % Abbreviated weekday names (%a)
@@ -112,22 +112,22 @@ mon         "<U4E00><U6708>";"<U4E8C><U6708>";/
             "<U4E5D><U6708>";"<U5341><U6708>";/
             "<U5341><U4E00><U6708>";"<U5341><U4E8C><U6708>"
 %
-% Equivalent of AM PM 
+% Equivalent of AM PM
 am_pm       "<U4E0A><U5348>";"<U4E0B><U5348>"
 %
-% Appropriate date and time representation 
+% Appropriate date and time representation
 % %Y\u5e74%m\u6708%d\u65e5 %H\u65f6%M\u5206%S\u79d2 %Z
 d_t_fmt     "<U0025><U0059><U5E74><U0025><U006D><U6708><U0025><U0064><U65E5><U0020><U0025><U0048><U65F6><U0025><U004D><U5206><U0025><U0053><U79D2><U0020><U0025><U005A>"
 %
-% Appropriate date representation 
+% Appropriate date representation
 % %Y\u5e74%m\u6708%d\u65e5
 d_fmt       "<U0025><U0059><U5E74><U0025><U006D><U6708><U0025><U0064><U65E5>"
 %
-% Appropriate time representation 
+% Appropriate time representation
 % %H\u65f6%M\u5206%S\u79d2 %Z
 t_fmt       "<U0025><U0048><U65F6><U0025><U004D><U5206><U0025><U0053><U79D2><U0020><U0025><U005A>"
 %
-% Appropriate 12 h time representation (%r) 
+% Appropriate 12 h time representation (%r)
 t_fmt_ampm  ""
 %
 END LC_TIME
@@ -142,14 +142,14 @@ LC_MESSAGES
 % ^[yY]
 yesexpr     "<U005E><U005B><U0079><U0059><U005D>"
 
-% Syntax on Unicode Regular Expression Guidelines TR#18 
+% Syntax on Unicode Regular Expression Guidelines TR#18
 % yesexpr     "<U005E><U005B><U0079><U0059><U005D>"
 
 %
 % ^[nN]
 noexpr      "<U005E><U005B><U006E><U004E><U005D>"
 
-% Syntax on Unicode Regular Expression Guidelines TR#18 
+% Syntax on Unicode Regular Expression Guidelines TR#18
 % noexpr      "<U005E><U005B><U006E><U004E><U005D>"
 %
 
@@ -174,8 +174,8 @@ END LC_PAPER
 LC_NAME
 % This is the ISO_IEC TR14652 Locale definition for the LC_NAME category
 % generated by IBM Basic CountryPack Transformer.
-% 
-% 
+%
+%
 name_fmt    "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074><U0025><U0067>"
 name_gen    ""
 name_mr     "<U004D><U0072><U002E>"
diff --git a/localedata/locales/zu_ZA b/localedata/locales/zu_ZA
index 9f95701199..2ad94130a6 100644
--- a/localedata/locales/zu_ZA
+++ b/localedata/locales/zu_ZA
@@ -61,6 +61,10 @@ LC_CTYPE
 % Use the characters described in the charmap file "i18n.tgz"
 %
 copy "i18n"
+
+translit_start
+include  "translit_combining";""
+translit_end
 END LC_CTYPE
 
 LC_COLLATE
@@ -88,7 +92,7 @@ abday       "<U0053><U006F><U006E>";/
             "<U0053><U0069><U006E>";/
             "<U0048><U006C><U0061>";/
             "<U004D><U0067><U0071>"
- 
+
 % day - The full names of the week days:
 % - iSonto, uMsombuluko, uLwesibili, uLwesithathu, uLwesine, uLwesihlanu, uMgqibelo
 day         "<U0069><U0053><U006F><U006E><U0074><U006F>";/
@@ -98,8 +102,8 @@ day         "<U0069><U0053><U006F><U006E><U0074><U006F>";/
             "<U0075><U004C><U0077><U0065><U0073><U0069><U006E><U0065>";/
             "<U0075><U004C><U0077><U0065><U0073><U0069><U0068><U006C><U0061><U006E><U0075>";/
             "<U0075><U004D><U0067><U0071><U0069><U0062><U0065><U006C><U006F>"
- 
-% abmon - The abbreviations for the months 
+
+% abmon - The abbreviations for the months
 % - Mas, Ola, Nda, Mba, Aba, Ang, Ntu, Ncw, Man, Mfu, Lwe, Zib
 abmon       "<U004D><U0061><U0073>";"<U004F><U006C><U0061>";/
             "<U004E><U0064><U0061>";"<U004D><U0062><U0061>";/
@@ -107,8 +111,8 @@ abmon       "<U004D><U0061><U0073>";"<U004F><U006C><U0061>";/
             "<U004E><U0074><U0075>";"<U004E><U0063><U0077>";/
             "<U004D><U0061><U006E>";"<U004D><U0066><U0075>";/
             "<U004C><U0077><U0065>";"<U005A><U0069><U0062>"
- 
-% mon - The full names of the months - 
+
+% mon - The full names of the months -
 % - uMasingana, uNhlolanja, uNdasa, uMbasa, uNhlaba, uNhlangulana
 %   uNtulikazi, uNcwaba, uMandulo, uMfumfu, uLwezi, uZibandlela
 mon         "<U0075><U004D><U0061><U0073><U0069><U006E><U0067><U0061><U006E><U0061>";/
@@ -123,7 +127,7 @@ mon         "<U0075><U004D><U0061><U0073><U0069><U006E><U0067><U0061><U006E><U00
             "<U0075><U004D><U0066><U0075><U006D><U0066><U0075>";/
             "<U0075><U004C><U0077><U0065><U007A><U0069>";/
             "<U0075><U005A><U0069><U0062><U0061><U006E><U0064><U006C><U0065><U006C><U0061>"
- 
+
 % Abreviated date and time representation to be referenced by the "%c" field descriptor -
 d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
 %
@@ -137,22 +141,22 @@ d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U00
 % Date representation to be referenced by the "%x" field descriptor -
 % "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
 d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
- 
+
 % Time representation to be referenced by the "%X" field descriptor -
 % "%T" (24-hour clock time in format HH:MM:SS)
 t_fmt       "<U0025><U0054>"
- 
+
 % Define representation of ante meridiem and post meridiem strings -
 % The ""s mean default to "AM" and "PM".
 am_pm       "";""
- 
+
 % Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
 % field descriptor -
 % The "" means that this format is not supported.
 t_fmt_ampm  ""
 
 % Date representation not described in ISO/IEC 14652. Comes out as -
-% "%a %b %e %H:%M:%S %Z %Y" 
+% "%a %b %e %H:%M:%S %Z %Y"
 date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
 <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
 <U0025><U005A><U0020><U0025><U0059>"
@@ -279,4 +283,3 @@ country_ab2   "<U005A><U0041>"
 country_ab3   "<U005A><U0041><U0046>"
 
 END LC_ADDRESS
-
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index b9705ee065..9a95de8bd4 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,16 @@
+2006-07-30  Roland McGrath  <roland@redhat.com>
+
+	* Makefile (libpthread-routines): Add ptw-sigsuspend.
+
+	* sysdeps/unix/sysv/linux/i386/not-cancel.h
+	(pause_not_cancel): New macro.
+	(nanosleep_not_cancel): New macro.
+	(sigsuspend_not_cancel): New macro.
+	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
+	nanosleep_not_cancel macro from <not-cancel.h>.
+	* pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
+	macro from <not-cancel.h>.
+
 2006-07-28  Ulrich Drepper  <drepper@redhat.com>
 	    Jakub Jelinek  <jakub@redhat.com>
 
diff --git a/nptl/Makefile b/nptl/Makefile
index 6a80bc1183..1a1c377f48 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -108,7 +108,7 @@ libpthread-routines = init vars events version \
 		      ptw-msync ptw-nanosleep ptw-open ptw-open64 ptw-pause \
 		      ptw-pread ptw-pread64 ptw-pwrite ptw-pwrite64 \
 		      ptw-tcdrain ptw-wait ptw-waitpid ptw-msgrcv ptw-msgsnd \
-		      ptw-sigwait \
+		      ptw-sigwait ptw-sigsuspend \
 		      pt-raise pt-system \
 		      flockfile ftrylockfile funlockfile \
 		      sigaction \
diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
index 5345766883..a19c907695 100644
--- a/nptl/pthread_mutex_lock.c
+++ b/nptl/pthread_mutex_lock.c
@@ -21,6 +21,7 @@
 #include <errno.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <not-cancel.h>
 #include "pthreadP.h"
 #include <lowlevellock.h>
 
@@ -278,7 +279,7 @@ __pthread_mutex_lock (mutex)
 
 		/* Delay the thread indefinitely.  */
 		while (1)
-		  __pause_nocancel ();
+		  pause_not_cancel ();
 	      }
 
 	    oldval = mutex->__data.__lock;
diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c
index 12f6c997bb..dcff4f81a8 100644
--- a/nptl/pthread_mutex_timedlock.c
+++ b/nptl/pthread_mutex_timedlock.c
@@ -19,8 +19,10 @@
 
 #include <assert.h>
 #include <errno.h>
+#include <time.h>
 #include "pthreadP.h"
 #include <lowlevellock.h>
+#include <not-cancel.h>
 
 
 int
@@ -281,7 +283,7 @@ pthread_mutex_timedlock (mutex, abstime)
 			--reltime.tv_sec;
 		      }
 		    if (reltime.tv_sec >= 0)
-		      while (__nanosleep_nocancel (&reltime, &reltime) != 0)
+		      while (nanosleep_not_cancel (&reltime, &reltime) != 0)
 			continue;
 
 		    return ETIMEDOUT;
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h b/nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h
index 91584948ae..6557359b43 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/i386/not-cancel.h
@@ -91,3 +91,15 @@ extern int __openat64_nocancel (int fd, const char *fname, int oflag,
 # define waitpid_not_cancel(pid, stat_loc, options) \
   INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
 #endif
+
+/* Uncancelable pause.  */
+#define pause_not_cancel() \
+  __pause_nocancel ()
+
+/* Uncancelable nanosleep.  */
+#define nanosleep_not_cancel(requested_time, remaining) \
+  __nanosleep_nocancel (requested_time, remaining)
+
+/* Uncancelable sigsuspend.  */
+#define sigsuspend_not_cancel(set) \
+  __sigsuspend_nocancel (set)
diff --git a/sysdeps/posix/pause.c b/sysdeps/posix/pause.c
index 8639e684f4..538c186ec0 100644
--- a/sysdeps/posix/pause.c
+++ b/sysdeps/posix/pause.c
@@ -1,5 +1,5 @@
 /* pause -- suspend the process until a signal arrives.  POSIX.1 version.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,6 +23,7 @@
 
 /* Suspend the process until a signal arrives.
    This always returns -1 and sets errno to EINTR.  */
+
 int
 __libc_pause (void)
 {
@@ -39,3 +40,18 @@ __libc_pause (void)
 weak_alias (__libc_pause, pause)
 
 LIBC_CANCEL_HANDLED ();		/* sigsuspend handles our cancellation.  */
+
+#ifndef NO_CANCELLATION
+# include <not-cancel.h>
+
+int
+__pause_nocancel (void)
+{
+  sigset_t set;
+
+  __sigemptyset (&set);
+  __sigprocmask (SIG_BLOCK, NULL, &set);
+
+  return sigsuspend_not_cancel (&set);
+}
+#endif
diff --git a/sysdeps/unix/sysv/linux/ia64/sigsuspend.c b/sysdeps/unix/sysv/linux/ia64/sigsuspend.c
deleted file mode 100644
index f8f9563494..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/sigsuspend.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003
-   Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <unistd.h>
-
-#include <sysdep-cancel.h>
-#include <sys/syscall.h>
-#include <bp-checks.h>
-
-/* Change the set of blocked signals to SET,
-   wait until a signal arrives, and restore the set of blocked signals.  */
-int
-__sigsuspend (set)
-     const sigset_t *set;
-{
-  /* XXX The size argument hopefully will have to be changed to the
-     real size of the user-level sigset_t.  */
-  if (SINGLE_THREAD_P)
-    return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set), _NSIG / 8);
-
-  int oldtype = LIBC_CANCEL_ASYNC ();
-
-  int result = INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set), _NSIG / 8);
-
-  LIBC_CANCEL_RESET (oldtype);
-
-  return result;
-}
-libc_hidden_def (__sigsuspend)
-weak_alias (__sigsuspend, sigsuspend)
-strong_alias (__sigsuspend, __libc_sigsuspend)
diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h
index 4a76335a55..80d33be29c 100644
--- a/sysdeps/unix/sysv/linux/not-cancel.h
+++ b/sysdeps/unix/sysv/linux/not-cancel.h
@@ -81,3 +81,25 @@ extern int __openat64_nocancel (int fd, const char *fname, int oflag,
 # define waitpid_not_cancel(pid, stat_loc, options) \
   INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
 #endif
+
+/* Uncancelable pause.  */
+#ifdef __NR_pause
+# define pause_not_cancel() \
+  INLINE_SYSCALL (pause, 0)
+#else
+# define pause_not_cancel() \
+  __pause_nocancel ()
+#endif
+
+/* Uncancelable nanosleep.  */
+#ifdef __NR_nanosleep
+# define nanosleep_not_cancel(requested_time, remaining) \
+  INLINE_SYSCALL (nanosleep, 2, requested_time, remaining)
+#else
+# define nanosleep_not_cancel(requested_time, remaining) \
+  __nanosleep_nocancel (requested_time, remaining)
+#endif
+
+/* Uncancelable sigsuspend.  */
+#define sigsuspend_not_cancel(set) \
+  __sigsuspend_nocancel (set)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c b/sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c
deleted file mode 100644
index 452f8354d0..0000000000
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <unistd.h>
-
-#include <sysdep-cancel.h>
-#include <sys/syscall.h>
-
-/* Change the set of blocked signals to SET,
-   wait until a signal arrives, and restore the set of blocked signals.  */
-int
-__sigsuspend (set)
-     const sigset_t *set;
-{
-  /* XXX The size argument hopefully will have to be changed to the
-     real size of the user-level sigset_t.  */
-  if (SINGLE_THREAD_P)
-    return INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
-
-  int oldtype = LIBC_CANCEL_ASYNC ();
-
-  int result = INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
-
-  LIBC_CANCEL_RESET (oldtype);
-
-  return result;
-}
-libc_hidden_def (__sigsuspend)
-weak_alias (__sigsuspend, sigsuspend)
-strong_alias (__sigsuspend, __libc_sigsuspend)
diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c
index 7b9b60911b..adbdfddfdb 100644
--- a/sysdeps/unix/sysv/linux/sigsuspend.c
+++ b/sysdeps/unix/sysv/linux/sigsuspend.c
@@ -56,6 +56,12 @@ do_sigsuspend (const sigset_t *set)
 
   return INLINE_SYSCALL (sigsuspend, 3, 0, 0, set->__val[0]);
 }
+#else
+static inline int __attribute__ ((always_inline))
+do_sigsuspend (const sigset_t *set)
+{
+  return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set), _NSIG / 8);
+}
 #endif
 
 /* Change the set of blocked signals to SET,
@@ -64,19 +70,6 @@ int
 __sigsuspend (set)
      const sigset_t *set;
 {
-#if __ASSUME_REALTIME_SIGNALS
-  if (SINGLE_THREAD_P)
-    return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set), _NSIG / 8);
-
-  int oldtype = LIBC_CANCEL_ASYNC ();
-
-  int result = INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set),
-			       _NSIG / 8);
-
-  LIBC_CANCEL_RESET (oldtype);
-
-  return result;
-#else
   if (SINGLE_THREAD_P)
     return do_sigsuspend (set);
 
@@ -87,8 +80,16 @@ __sigsuspend (set)
   LIBC_CANCEL_RESET (oldtype);
 
   return result;
-#endif
 }
 libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
 strong_alias (__sigsuspend, __libc_sigsuspend)
+
+#ifndef NO_CANCELLATION
+int
+__sigsuspend_nocancel (set)
+     const sigset_t *set;
+{
+  return do_sigsuspend (set);
+}
+#endif
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c
deleted file mode 100644
index 1f06e3d534..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../ia64/sigsuspend.c"
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigsuspend.c b/sysdeps/unix/sysv/linux/x86_64/sigsuspend.c
deleted file mode 100644
index 9c5c79e63e..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/sigsuspend.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/ia64/sigsuspend.c>