diff --git a/src/wp-includes/js/media-grid.js b/src/wp-includes/js/media-grid.js
index 0ebbc67..982f906 100644
--- a/src/wp-includes/js/media-grid.js
+++ b/src/wp-includes/js/media-grid.js
@@ -125,7 +125,7 @@
 				modal:     false,
 				selection: [],
 				library:   {},
-				multiple:  false,
+				multiple:  'add',
 				state:     'library',
 				uploader:  true,
 				mode:      [ 'grid', 'edit' ]
@@ -514,4 +514,50 @@
 		}
 	});
 
+
+	media.view.BulkSelectionControl = media.View.extend({
+		initialize: function() {
+			media.View.prototype.initialize.apply( this, arguments );
+			this.views.add( new media.view.BulkSelectionButton({
+				text: 'Bulk Edit',
+				controller: this.options.controller
+			}) );
+			this.$el.css( 'display', 'inline' );
+			this.listenTo( this.options.controller, 'bulk-edit:activate', this.bulkEditActivate );
+			this.listenTo( this.options.controller, 'bulk-edit:deactivate', this.bulkEditDeactivate );
+		},
+
+		bulkEditActivate: function() {
+
+		},
+
+		bulkEditDeactivate: function() {
+
+		}
+	});
+
+
+	media.view.BulkSelectionButton = media.view.Button.extend({
+		initialize: function() {
+			this.$el.html( 'Bulk Edit' );
+			media.view.Button.prototype.initialize.apply( this, arguments );
+		},
+
+		click: function() {
+			media.view.Button.prototype.click.apply( this, arguments );
+			var activeModes = this.controller.options.mode;
+			if ( _.contains( activeModes, 'edit' ) ) {
+				activeModes = _.without( activeModes, 'edit' );
+				activeModes.push( 'bulk-edit' );
+				this.$el.addClass( 'button-primary');
+			} else {
+				activeModes = _.without( activeModes, 'bulk-edit' );
+				activeModes.push( 'edit' );
+				this.$el.removeClass( 'button-primary');
+				this.controller.state().get('selection').reset();
+			}
+			this.controller.options.mode = activeModes;
+		}
+	});
+
 }(jQuery, _, Backbone, wp));
\ No newline at end of file
diff --git a/src/wp-includes/js/media-views.js b/src/wp-includes/js/media-views.js
index 6bf147c..5652c8d 100644
--- a/src/wp-includes/js/media-views.js
+++ b/src/wp-includes/js/media-views.js
@@ -4673,7 +4673,7 @@
 			}
 
 			// In the grid view, bubble up an edit:attachment event to the controller.
-			if ( _.contains( this.controller.options.mode, 'grid' ) ) {
+			if ( _.contains( this.controller.options.mode, 'edit' ) ) {
 				this.controller.trigger( 'edit:attachment', this.model );
 				return;
 			}
@@ -5578,6 +5578,11 @@
 					priority: -90
 				}).render() );
 
+				this.toolbar.set( 'bulkSelectionControls', new media.view.BulkSelectionControl({
+					controller: this.controller,
+					priority: -70
+				}).render() );
+
 				this.toolbar.set( 'gridFieldOptions', new media.view.GridFieldOptions({
 					controller: this.controller,
 					priority: -50
