I also saw the ampersand-choking bug on 2.14. I updated to latest 2.15 cvs and now the choking is gone but ampersands appear as & I produced a patch based on Shaun's advice, and I can confirm that it fixes it for me. http://bugzilla.gnome.org/show_bug.cgi?id=343372 Index: src/yelp-toc-pager.c =================================================================== RCS file: /cvs/gnome/yelp/src/yelp-toc-pager.c,v retrieving revision 1.88 diff -u -B -r1.88 yelp-toc-pager.c --- src/yelp-toc-pager.c 25 Jun 2006 21:54:41 -0000 1.88 +++ src/yelp-toc-pager.c 29 Jun 2006 14:41:38 -0000 @@ -1535,13 +1535,6 @@ g_io_channel_read_to_end (channel, &str, &len, NULL); g_io_channel_shutdown (channel, FALSE, NULL); g_io_channel_unref (channel); - /* Check the string for the special character '&' which - * screws up the xml. If its there, it needs escaping - */ - amp = g_strsplit (str, "&", -1); - g_free (str); - str = g_strjoinv ("&", amp); - g_strfreev (amp); files = g_strsplit (str, "\n", -1); @@ -1610,12 +1603,12 @@ NULL); xmlNewNsProp (tmp, NULL, BAD_CAST "href", BAD_CAST fname); - xmlNewChild (tmp, NULL, BAD_CAST "title", + xmlNewTextChild (tmp, NULL, BAD_CAST "title", BAD_CAST part2); - xmlNewChild (tmp, NULL, BAD_CAST "tooltip", + xmlNewTextChild (tmp, NULL, BAD_CAST "tooltip", BAD_CAST tooltip); - xmlNewChild (tmp, NULL, BAD_CAST "description", + xmlNewTextChild (tmp, NULL, BAD_CAST "description", BAD_CAST desc); } done: