diff --git a/gtk/gtkaboutdialog.c b/gtk/gtkaboutdialog.c
index 9edf0b647e..6be3edc3e2 100644
--- a/gtk/gtkaboutdialog.c
+++ b/gtk/gtkaboutdialog.c
@@ -2277,6 +2277,7 @@ add_credits_section (GtkAboutDialog *about,
{
gchar *link;
gchar *text;
+ gchar *name;
if (*q1 == '<')
{
@@ -2284,6 +2285,7 @@ add_credits_section (GtkAboutDialog *about,
gchar *escaped;
text = g_strstrip (g_strndup (q0, q1 - q0));
+ name = g_markup_escape_text (text, -1);
q1++;
link = g_strndup (q1, q2 - q1);
q2++;
@@ -2291,22 +2293,25 @@ add_credits_section (GtkAboutDialog *about,
g_string_append_printf (str,
"%s",
escaped,
- text);
+ name[0] ? name : link);
g_free (escaped);
g_free (link);
g_free (text);
+ g_free (name);
}
else
{
/* uri */
text = g_strstrip (g_strndup (q0, q1 - q0));
+ name = g_markup_escape_text (text, -1);
link = g_strndup (q1, q2 - q1);
g_string_append_printf (str,
"%s",
link,
- text);
+ name[0] ? name : link);
g_free (link);
g_free (text);
+ g_free (name);
}
q0 = q2;