--- widgets/table/e-table-extras.c.orig 2010-12-02 00:17:00.000000000 +0100 +++ widgets/table/e-table-extras.c 2010-12-02 02:34:42.000000000 +0100 @@ -172,14 +172,17 @@ } #define prepare_value(_z, _cz) \ - _cz = e_table_sorting_utils_lookup_cmp_cache (cmp_cache, _z); \ - if (!_cz) { \ - gchar *tmp = g_utf8_casefold (_z, -1); \ - _cz = g_utf8_collate_key (tmp, -1); \ - g_free (tmp); \ + if (g_utf8_validate (_z, -1, NULL)) { \ + _cz = e_table_sorting_utils_lookup_cmp_cache ( \ + cmp_cache, _z); \ + if (!_cz) { \ + gchar *tmp = g_utf8_casefold (_z, -1); \ + _cz = g_utf8_collate_key (tmp, -1); \ + g_free (tmp); \ \ - e_table_sorting_utils_add_to_cmp_cache ( \ - cmp_cache, _z, (gchar *) _cz); \ + e_table_sorting_utils_add_to_cmp_cache ( \ + cmp_cache, _z, (gchar *) _cz); \ + } \ } prepare_value (x, cx);