I found out what was wrong. My trackback:ping URL contains a ‘&’ character which was not being escaped to ‘&’, so the autodiscovery routine was falling back to the rdf:about URL, which contains the permalink instead of the trackback URL.

In other words, here’s what the corrected trackback autodiscovery comment looks like now:

<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
    rdf:about="http://www.brockerhoff.net/bb/viewtopic.php?p=259#259"
    dc:identifier="http://www.brockerhoff.net/bb/viewtopic.php?p=259#259"
    dc:title="Re: Trackbacks are up - I think"
    trackback:ping="http://www.brockerhoff.net/bb/posting.php?mode=track&p=259" />
</rdf:RDF>
-->

This is copied exactly from the Trackback autodiscovery example. The question is, older versions of Movable Type apparently used the rdf:about URL for the trackback ping… so shouldn’t that entry contain the trackback ping URL for backward compatibility, instead of the permalink?

Update: Ben Trott of Movable Type informs me that the rdf:about field should contain the permalink. Apparently compatibility is not an issue…

Update: I was wrong… the & must NOT be escaped. See my post above.