Index: wp-includes/ms-blogs.php
===================================================================
--- wp-includes/ms-blogs.php	(revision 15155)
+++ wp-includes/ms-blogs.php	(working copy)
@@ -542,15 +542,10 @@
 function get_blog_list( $start = 0, $num = 10, $deprecated = '' ) {
 	global $wpdb;
 
-	$blogs = get_site_option( "blog_list" );
+	$blogs = get_site_transient( 'blog_list' );
 	$update = false;
-	if ( is_array( $blogs ) ) {
-		if ( ( $blogs['time'] + 60 ) < time() ) { // cache for 60 seconds.
-			$update = true;
-		}
-	} else {
+	if ( empty( $blogs ) || ! is_array( $blogs ) )
 		$update = true;
-	}
 
 	if ( $update == true ) {
 		unset( $blogs );
@@ -558,11 +553,11 @@
 
 		foreach ( (array) $blogs as $details ) {
 			$blog_list[ $details['blog_id'] ] = $details;
-			$blog_list[ $details['blog_id'] ]['postcount'] = $wpdb->get_var( "SELECT COUNT(ID) FROM " . $wpdb->base_prefix . $details['blog_id'] . "_posts WHERE post_status='publish' AND post_type='post'" );
+			$blog_list[ $details['blog_id'] ]['postcount'] = $wpdb->get_var( "SELECT COUNT(ID) FROM " . $wpdb->get_blog_prefix( $details['blog_id'] ) . "posts WHERE post_status='publish' AND post_type='post'" );
 		}
 		unset( $blogs );
 		$blogs = $blog_list;
-		update_site_option( "blog_list", $blogs );
+		set_site_transient( 'blog_list', $blogs, 60 ); // cache for 60 seconds.
 	}
 
 	if ( false == is_array( $blogs ) )
