diff -Naur a/wp-includes/class-wp-xmlrpc-server.php b/wp-includes/class-wp-xmlrpc-server.php
--- a/wp-includes/class-wp-xmlrpc-server.php	2012-05-12 02:34:47.000000000 +0530
+++ b/wp-includes/class-wp-xmlrpc-server.php	2012-05-13 19:27:34.000000000 +0530
@@ -473,18 +473,18 @@
 				continue;
 
 			$blog_id = $blog->userblog_id;
-			switch_to_blog($blog_id);
-			$is_admin = current_user_can('manage_options');
+			// switch_to_blog($blog_id);
+			$is_admin = current_user_can_for_blog($blog_id, 'manage_options');
 
 			$struct[] = array(
 				'isAdmin'		=> $is_admin,
-				'url'			=> get_option( 'home' ) . '/',
+				'url'			=> get_blog_option( $blog_id, 'home' ) . '/',
 				'blogid'		=> (string) $blog_id,
-				'blogName'		=> get_option( 'blogname' ),
-				'xmlrpc'		=> site_url( 'xmlrpc.php' )
+				'blogName'		=> get_blog_option( $blog_id, 'blogname' ),
+				'xmlrpc'		=> get_site_url( $blog_id, 'xmlrpc.php' )
 			);
 
-			restore_current_blog();
+			// restore_current_blog();
 		}
 
 		return $struct;
