Index: src/wp-includes/admin-bar.php
===================================================================
--- src/wp-includes/admin-bar.php	(revision 43556)
+++ src/wp-includes/admin-bar.php	(working copy)
@@ -222,7 +222,7 @@
 
 	if ( current_user_can( 'read' ) ) {
 		$profile_url = get_edit_profile_url( $user_id );
-	} elseif ( is_multisite() ) {
+	} elseif ( is_multisite() && current_user_can( 'read' ) ) {
 		$profile_url = get_dashboard_url( $user_id, 'profile.php' );
 	} else {
 		$profile_url = false;
@@ -263,7 +263,7 @@
 
 	if ( current_user_can( 'read' ) ) {
 		$profile_url = get_edit_profile_url( $user_id );
-	} elseif ( is_multisite() ) {
+	} elseif ( is_multisite() && current_user_can( 'read' )) {
 		$profile_url = get_dashboard_url( $user_id, 'profile.php' );
 	} else {
 		$profile_url = false;
@@ -465,13 +465,15 @@
 		$my_sites_url = admin_url( 'my-sites.php' );
 	}
 
-	$wp_admin_bar->add_menu(
-		array(
-			'id'    => 'my-sites',
-			'title' => __( 'My Sites' ),
-			'href'  => $my_sites_url,
-		)
-	);
+	if ( current_user_can( 'read' ) ) {
+		$wp_admin_bar->add_menu(
+			array(
+				'id'    => 'my-sites',
+				'title' => __( 'My Sites' ),
+				'href'  => $my_sites_url,
+			)
+		);
+	}
 
 	if ( current_user_can( 'manage_network' ) ) {
 		$wp_admin_bar->add_group(
@@ -597,15 +599,6 @@
 					'href'   => admin_url(),
 				)
 			);
-		} else {
-			$wp_admin_bar->add_menu(
-				array(
-					'parent' => 'my-sites-list',
-					'id'     => $menu_id,
-					'title'  => $blavatar . $blogname,
-					'href'   => home_url(),
-				)
-			);
 		}
 
 		if ( current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) {
Index: src/wp-login.php
===================================================================
--- src/wp-login.php	(revision 43556)
+++ src/wp-login.php	(working copy)
@@ -996,7 +996,7 @@
 				if ( is_multisite() && ! get_active_blog_for_user( $user->ID ) && ! is_super_admin( $user->ID ) ) {
 					$redirect_to = user_admin_url();
 				} elseif ( is_multisite() && ! $user->has_cap( 'read' ) ) {
-					$redirect_to = get_dashboard_url( $user->ID );
+					$redirect_to = home_url();
 				} elseif ( ! $user->has_cap( 'edit_posts' ) ) {
 					$redirect_to = $user->has_cap( 'read' ) ? admin_url( 'profile.php' ) : home_url();
 				}
