+static void
+remove_undisclosed_recipients (gchar **recipients)
+{
+ GSList *addresses, *node;
+ gboolean is_first;
+ GString *result;
+
+ g_return_if_fail (recipients);
+ addresses = modest_text_utils_split_addresses_list (*recipients);
+
+ is_first = TRUE;
+ result = g_string_new ("");
+ for (node = addresses; node != NULL; node = g_slist_next (node)) {
+ const gchar *address = (const gchar *) node->data;
+
+ if (address && strstr (address, "undisclosed-recipients"))
+ continue;
+
+ if (is_first)
+ is_first = FALSE;
+ else
+ result = g_string_append (result, ", ");
+
+ result = g_string_append (result, address);
+ }
+ g_slist_foreach (addresses, (GFunc)g_free, NULL);
+ g_slist_free (addresses);
+
+ g_free (*recipients);
+ *recipients = g_string_free (result, FALSE);
+}
+