diff -up gtk-doc-1.11/gtkdoc-mkdb.in.index gtk-doc-1.11/gtkdoc-mkdb.in --- gtk-doc-1.11/gtkdoc-mkdb.in.index 2008-11-06 14:01:42.000000000 -0500 +++ gtk-doc-1.11/gtkdoc-mkdb.in 2008-11-23 17:37:33.000000000 -0500 @@ -823,9 +823,9 @@ sub OutputIndex { $short_symbol = $symbol; } - my $xref = &MakeXRef ($symbol); my $curletter = uc(substr($short_symbol,0,1)); my $id = $apiindex{$symbol}; + my $xref = &MakeXRef ($id, $symbol); #print " add symbol $symbol with $id to index in section $curletter\n"; @@ -2127,7 +2127,7 @@ sub CreateValidSGMLID { # Special case, '_' would end up as '' so we use 'gettext-macro' instead. if ($id eq "_") { return "gettext-macro"; } - if ($id !~ /[a-z]/) { $id .= ":CAPS" }; + if ($id !~ /[a-z]/ && $id !~ /-CAPS$/) { $id .= ":CAPS" }; $id =~ s/[_ ]/-/g; $id =~ s/[,\.]//g;