Index: wp-includes/admin-bar.php
===================================================================
--- wp-includes/admin-bar.php	(revision 16888)
+++ wp-includes/admin-bar.php	(working copy)
@@ -116,23 +116,25 @@
 
 	$wp_admin_bar->add_menu( array(  'id' => 'my-blogs', 'title' => __( 'My Sites' ),  'href' => $wp_admin_bar->user->account_domain, ) );
 
-	$default = includes_url('images/wpmini-blue.png');
+	$default = includes_url( 'images/wpmini-blue.png' );
+	$i = 0;
+	foreach ( $wp_admin_bar->user->blogs as $blog ) {
+		if ( ! isset( $blog->visible ) || $blog->visible === true ) {
+			$i++;
+			/* If more than 15 blogs exist, show only the first 15 blogs and a "More Sites" link. */
+			if ( $i > 15 ) {
+				$wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'more-blogs', 'title' => __( 'More Sites' ),  'href' => admin_url( 'my-sites.php' ), ) );
+				break;
+			}
 
-	foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
-		// @todo Replace with some favicon lookup.
-		//$blavatar = '<img src="' . esc_url( blavatar_url( blavatar_domain( $blog->siteurl ), 'img', 16, $default ) ) . '" alt="Blavatar" width="16" height="16" />';
-		$blavatar = '<img src="' . esc_url($default) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" class="blavatar"/>';
+			// @todo Replace with some favicon lookup.
+			//$blavatar = '<img src="' . esc_url( blavatar_url( blavatar_domain( $blog->siteurl ), 'img', 16, $default ) ) . '" alt="Blavatar" width="16" height="16" />';
+			$blavatar = '<img src="' . esc_url( $default ) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" class="blavatar"/>';
 
-		$marker = '';
-		if ( strlen($blog->blogname) > 18 )
-			$marker = '...';
+			$blogname = empty( $blog->blogname ) ? $blog->domain : $blog->blogname;
+			if ( strlen( $blogname ) > 15 )
+				$blogname = substr( $blogname, 0, 15 ) . '&hellip;';
 
-		if ( empty( $blog->blogname ) )
-			$blogname = $blog->domain;
-		else
-			$blogname = substr( $blog->blogname, 0, 18 ) . $marker;
-
-		if ( ! isset( $blog->visible ) || $blog->visible === true ) {
 			$wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'blog-' . $blog->userblog_id, 'title' => $blavatar . $blogname,  'href' => get_admin_url($blog->userblog_id), ) );
 			$wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-d', 'title' => __( 'Dashboard' ), 'href' => get_admin_url($blog->userblog_id), ) );
 
