--- texinfo-4.13.orig/makeinfo/cmds.c	2008-05-22 05:11:34.000000000 -0700
+++ texinfo-4.13/makeinfo/cmds.c	2012-05-23 18:31:57.108264307 -0700
@@ -1560,7 +1560,7 @@ cm_setfilename (void)
   char *filename;
   get_rest_of_line (1, &filename);
   /* warning ("`@%s %s' encountered and ignored", command, filename); */
-  if (xml)
+  if (xml && !docbook)
     add_word_args ("<setfilename>%s</setfilename>", filename);
   free (filename);
 }
--- texinfo-4.13.orig/makeinfo/node.c	2008-07-05 16:59:47.000000000 -0700
+++ texinfo-4.13/makeinfo/node.c	2012-05-23 17:02:46.517345024 -0700
@@ -1233,10 +1233,12 @@ cm_anchor (int arg)
     }
   else if (xml || docbook)
     {
+      char *id = xml_id(anchor);
       xml_insert_element_with_attribute (ANCHOR, START,
 					 docbook ? "id=\"%s\"" : "name=\"%s\"",
-					 anchor);
+					 id);
       xml_insert_element (ANCHOR, END);
+      free(id);
     }
 
   /* Save it in the tag table.  */
--- texinfo-4.13.orig/makeinfo/xml.c	2008-02-12 17:00:55.000000000 -0800
+++ texinfo-4.13/makeinfo/xml.c	2012-05-23 17:20:13.698858895 -0700
@@ -586,21 +586,27 @@ static int in_indexterm = 0;
 char *
 xml_id (char *id)
 {
-  char *tem = xmalloc (strlen (id) + 1);
+  /* Get an extra space to accomodate adding an i-prefix. */
+  char *tem = xmalloc (strlen (id) + 2);
   char *p = tem;
-  strcpy (tem, id);
+
+  /* First character cannot be a number, '-' or '.'. Just always add
+     an i if we're not starting with a alphanumeric character
+     already, to simplify the code.
+  */
+  if (!isalpha(*id))
+    {
+      *p++ = 'i';
+    }
+
+  strcpy (p, id);
+
   while (*p)
     {
-      if (strchr (":\" \t\f\r\n", *p))
+      if (!isalnum (*p) && !strchr (":_.-", *p))
         *p = '-';
       p++;
     }
-  p = tem;
-
-  /* First character cannot be a number.  Clearly we should make this
-     dependent on the actual numeral found.  */
-  if (strchr ("0123456789", *p))
-    *p = 'i';
 
   return tem;
 }
