--- xmlrpc.php.ori	2010-01-05 22:43:53.906250000 +0100
+++ xmlrpc.php	2010-01-09 11:52:43.000000000 +0100
@@ -30,7 +30,16 @@
 include('./wp-load.php');
 
 if ( isset( $_GET['rsd'] ) ) { // http://archipelago.phrasewise.com/rsd
-header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
+	$xmlrpc_url = site_url('xmlrpc.php', 'rpc');
+	$apis = array(
+		array( 'name' => 'WordPress', 'blogID' => 1, 'preferred' => true, 'apiLink' => $xmlrpc_url ),
+		array( 'name' => 'Movable Type', 'blogID' => 1, 'preferred' => false, 'apiLink' => $xmlrpc_url ),
+		array( 'name' => 'MetaWeblog', 'blogID' => 1, 'preferred' => false, 'apiLink' => $xmlrpc_url ),
+		array( 'name' => 'Blogger', 'blogID' => 1, 'preferred' => false, 'apiLink' => $xmlrpc_url ),
+		array( 'name' => 'Atom', 'preferred' => false, 'apiLink' => apply_filters('atom_service_url', site_url('wp-app.php/service', 'rpc') ) )
+	);
+	$apis = apply_filters( 'xmlrpc_apis', $apis, $xmlrpc_url );
+	header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
 ?>
 <?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
 <rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
@@ -39,16 +48,18 @@
     <engineLink>http://wordpress.org/</engineLink>
     <homePageLink><?php bloginfo_rss('url') ?></homePageLink>
     <apis>
-      <api name="WordPress" blogID="1" preferred="true" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" />
-      <api name="Movable Type" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" />
-      <api name="MetaWeblog" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" />
-      <api name="Blogger" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" />
-      <api name="Atom" blogID="" preferred="false" apiLink="<?php echo apply_filters('atom_service_url', site_url('wp-app.php/service', 'rpc') ) ?>" />
+<?php
+	foreach ( $apis as $api ) {
+		echo '      <api name="', esc_attr( $api['name'] ), '" blogID="', isset($api['blogID']) ? esc_attr( $api['blogID'] ) : '',
+		'" preferred="', isset( $api['preferred'] ) && $api['preferred'] ? 'true' : 'false', 
+		'" apiLink="', esc_attr( $api['apiLink'] ), '" />', "\n";
+	}
+?>
     </apis>
   </service>
 </rsd>
 <?php
-exit;
+	exit;
 }
 
 include_once(ABSPATH . 'wp-admin/includes/admin.php');
