Index: src/wp-admin/js/updates.js
===================================================================
--- src/wp-admin/js/updates.js	(revision 41035)
+++ src/wp-admin/js/updates.js	(working copy)
@@ -2004,6 +2004,11 @@
 				errorMessages = [],
 				type, action;
 
+            if ( bulkAction == 'update-selected' ) {
+                // Disable the apply button while working
+                $bulkActionForm.find('input[type="submit"]').prop( 'disabled', true );
+            }
+
 			// Determine which type of item we're dealing with.
 			switch ( pagenow ) {
 				case 'plugins':
@@ -2023,6 +2028,7 @@
 			if ( ! itemsSelected.length ) {
 				event.preventDefault();
 				$( 'html, body' ).animate( { scrollTop: 0 } );
+                $bulkActionForm.find('input[type="submit"]').prop( 'disabled', false );
 
 				return wp.updates.addAdminNotice( {
 					id:        'no-items-selected',
@@ -2029,8 +2035,11 @@
 					className: 'notice-error is-dismissible',
 					message:   wp.updates.l10n.noItemsSelected
 				} );
+
 			}
 
+
+
 			// Determine the type of request we're dealing with.
 			switch ( bulkAction ) {
 				case 'update-selected':
@@ -2042,7 +2051,6 @@
 						event.preventDefault();
 						return;
 					}
-
 					action = bulkAction.replace( 'selected', type );
 					break;
 
@@ -2054,6 +2062,7 @@
 
 			event.preventDefault();
 
+
 			// Un-check the bulk checkboxes.
 			$bulkActionForm.find( '.manage-column [type="checkbox"]' ).prop( 'checked', false );
 
@@ -2123,9 +2132,12 @@
 				}
 			} );
 
+
+
 			// Reset admin notice template after #bulk-action-notice was added.
 			$document.on( 'wp-updates-notice-added', function() {
 				wp.updates.adminNotice = wp.template( 'wp-updates-admin-notice' );
+                $bulkActionForm.find('input[type="submit"]').prop( 'disabled', false );
 			} );
 
 			// Check the queue, now that the event handlers have been added.
