Index: src/wp-includes/ms-settings.php
===================================================================
--- src/wp-includes/ms-settings.php	(revision 27741)
+++ src/wp-includes/ms-settings.php	(working copy)
@@ -119,6 +119,13 @@
 		$current_blog->blog_id = $blog_id = 1;
 	}
 
+	// Admin access must have an exact path match.
+	if ( ! empty( $current_blog ) && is_admin() && 0 !== strcasecmp( $current_blog->path, $path ) ) {
+		$scheme = is_ssl() ? 'https' : 'http';
+		header( "Location: $scheme://{$current_blog->domain}{$current_blog->path}" );
+		exit;
+	}
+
 	// No site has been found, bail.
 	if ( empty( $current_blog ) ) {
 		// We're going to redirect to the network URL, with some possible modifications.
@@ -149,6 +156,8 @@
 			if ( '%siteurl%' !== NOBLOGREDIRECT ) {
 				$destination = NOBLOGREDIRECT;
 			}
+		} elseif ( is_admin() ) {
+			$destination .= 'wp-admin/';
 		} elseif ( 0 === strcasecmp( $current_site->domain, $domain ) ) {
 			/*
 			 * If the domain we were searching for matches the network's domain,
