diff --git a/src/wp-includes/css/media-views.css b/src/wp-includes/css/media-views.css
index 87ccdc6..388a2bf 100644
--- a/src/wp-includes/css/media-views.css
+++ b/src/wp-includes/css/media-views.css
@@ -2643,6 +2643,9 @@ video#inline-media-node {
 	font-weight: 300;
 }
 
+.media-frame.mode-bulk-edit .attachment:hover .inline-toolbar {
+	display: none;
+}
 
 .edit-attachment-frame .edit-media-header .left:before {
 	content: '\f340';
diff --git a/src/wp-includes/js/media-views.js b/src/wp-includes/js/media-views.js
index 328f59a..00b06a2 100644
--- a/src/wp-includes/js/media-views.js
+++ b/src/wp-includes/js/media-views.js
@@ -1812,7 +1812,7 @@
 			this.activeModes.on( 'add remove reset', _.bind( this.triggerModeEvents, this ) );
 
 			_.each( this.options.mode, function( mode ) {
-				this.activeModes.add( new Backbone.Model( { id: mode } ) );
+				this.activateMode( mode );
 			}, this );
 
 			// Force the uploader off if the upload limit has been exceeded or
@@ -2005,7 +2005,11 @@
 			this.trigger( eventToTrigger );
 		},
 		activateMode: function( mode ) {
+			if ( this.activeModes.where( { id: mode } ).length ) {
+				return;
+			}
 			this.activeModes.add( [ { id: mode } ] );
+			this.$el.addClass( 'mode-' + mode );
 			this.trigger( mode + ':activate' );
 		},
 		deactivateMode: function( mode ) {
@@ -2014,6 +2018,7 @@
 				return;
 			}
 			this.activeModes.remove( this.activeModes.where( { id: mode } ) );
+			this.$el.removeClass( 'mode-' + mode );
 			this.trigger( mode + ':deactivate' );
 		}
 	});
@@ -4590,7 +4595,7 @@
 		},
 
 		events: {
-			'click .attachment-preview':      'toggleSelectionHandler',
+			'click .js--select-attachment':   'toggleSelectionHandler',
 			'change [data-setting]':          'updateSetting',
 			'change [data-setting] input':    'updateSetting',
 			'change [data-setting] select':   'updateSetting',
diff --git a/src/wp-includes/media-template.php b/src/wp-includes/media-template.php
index 1912875..05e7def 100644
--- a/src/wp-includes/media-template.php
+++ b/src/wp-includes/media-template.php
@@ -386,11 +386,11 @@ function wp_print_media_templates() {
 
 	<script type="text/html" id="tmpl-attachment">
 		<# if ( _.contains( data.controller.options.mode, 'grid' ) ) { #>
-		<div class="inline-toolbar">
+		<div class="inline-toolbar js--select-attachment">
 			<div class="dashicons dashicons-edit edit edit-media"></div>
 		</div>
 		<# } #>
-		<div class="attachment-preview type-{{ data.type }} subtype-{{ data.subtype }} {{ data.orientation }}">
+		<div class="attachment-preview js--select-attachment type-{{ data.type }} subtype-{{ data.subtype }} {{ data.orientation }}">
 			<# if ( data.uploading ) { #>
 				<div class="media-progress-bar"><div></div></div>
 			<# } else if ( 'image' === data.type ) { #>
