avoid possible memory leak
diff --git a/UTS10/collation_key.c b/UTS10/collation_key.c
index 737a050..e632434 100644
--- a/UTS10/collation_key.c
+++ b/UTS10/collation_key.c
@@ -333,7 +333,14 @@
   static char32_t *u32_str;
   static size_t u32_len;
 
-  u32_str = u8_to_u32 (u8_str, length_in, u32_str, &u32_len);
+  static char32_t *ret;
+
+  ret = u8_to_u32 (u8_str, length_in, u32_str, &u32_len);
+  if (ret != u32_str)
+    {
+      free (u32_str);
+      u32_str = ret;
+    }
 
   char *key = u32_make_collation_key_ext (u32_str, u32_len, variable,
                                           debug, resultbuf, lengthp);