diff --git src/wp-admin/includes/class-wp-upgrader-skins.php src/wp-admin/includes/class-wp-upgrader-skins.php
index 71a1293..f3183c6 100644
--- src/wp-admin/includes/class-wp-upgrader-skins.php
+++ src/wp-admin/includes/class-wp-upgrader-skins.php
@@ -19,6 +19,7 @@ class WP_Upgrader_Skin {
 	var $upgrader;
 	var $done_header = false;
 	var $result = false;
+	var $upgrade_type = false;
 
 	function __construct($args = array()) {
 		$defaults = array( 'url' => '', 'nonce' => '', 'title' => '', 'context' => false );
@@ -92,6 +93,27 @@ class WP_Upgrader_Skin {
 	function before() {}
 	function after() {}
 
+	/**
+	 * Output javascript that calls function to decrement the update counts
+	 *
+	 * @since 3.9.0
+	 */
+	function decrement_update_count() {
+
+		if ( ! in_array( $this->upgrade_type, array( 'plugin', 'theme' ) ) ) {
+			return;
+		}
+
+		echo '<script type="text/javascript">
+				(function( wp ) {
+					if ( wp && wp.decrementUpdateCount ) {
+						wp.decrementUpdateCount( "' . esc_js( $this->upgrade_type ) . '" );
+					}
+				})( window.wp );
+			</script>';
+
+	}
+
 }
 
 /**
@@ -105,6 +127,7 @@ class Plugin_Upgrader_Skin extends WP_Upgrader_Skin {
 	var $plugin = '';
 	var $plugin_active = false;
 	var $plugin_network_active = false;
+	var $upgrade_type = 'plugin';
 
 	function __construct($args = array()) {
 		$defaults = array( 'url' => '', 'plugin' => '', 'nonce' => '', 'title' => __('Update Plugin') );
@@ -252,10 +275,29 @@ class Bulk_Upgrader_Skin extends WP_Upgrader_Skin {
 		wp_ob_end_flush_all();
 		flush();
 	}
+
+	/**
+	 * Output javascript that sends message to parent window to decrement the update counts
+	 *
+	 * @since 3.9.0
+	 */
+	function decrement_update_count() {
+
+		if ( ! in_array( $this->upgrade_type, array( 'plugin', 'theme' ) ) ) {
+			return;
+		}
+
+		echo '<script type="text/javascript">
+				if ( window.postMessage && JSON ) {
+					window.parent.postMessage( JSON.stringify( { action: "decrementUpdateCount", upgradeType: "' . esc_js( $this->upgrade_type ) . '" } ), window.location.protocol + "//" + window.location.hostname );
+				}
+			</script>';
+	}
 }
 
 class Bulk_Plugin_Upgrader_Skin extends Bulk_Upgrader_Skin {
 	var $plugin_info = array(); // Plugin_Upgrader::bulk() will fill this in.
+	var $upgrade_type = 'plugin';
 
 	function __construct($args = array()) {
 		parent::__construct($args);
@@ -290,6 +332,7 @@ class Bulk_Plugin_Upgrader_Skin extends Bulk_Upgrader_Skin {
 
 class Bulk_Theme_Upgrader_Skin extends Bulk_Upgrader_Skin {
 	var $theme_info = array(); // Theme_Upgrader::bulk() will fill this in.
+	var $upgrade_type = 'theme';
 
 	function __construct($args = array()) {
 		parent::__construct($args);
@@ -468,6 +511,7 @@ class Theme_Installer_Skin extends WP_Upgrader_Skin {
  */
 class Theme_Upgrader_Skin extends WP_Upgrader_Skin {
 	var $theme = '';
+	var $upgrade_type = 'theme';
 
 	function __construct($args = array()) {
 		$defaults = array( 'url' => '', 'theme' => '', 'nonce' => '', 'title' => __('Update Theme') );
diff --git src/wp-admin/includes/class-wp-upgrader.php src/wp-admin/includes/class-wp-upgrader.php
index 664595a..514f281 100644
--- src/wp-admin/includes/class-wp-upgrader.php
+++ src/wp-admin/includes/class-wp-upgrader.php
@@ -368,6 +368,7 @@ class WP_Upgrader {
 		} else {
 			//Install Succeeded
 			$this->skin->feedback('process_success');
+			$this->skin->decrement_update_count();
 		}
 
 		$this->skin->after();
diff --git src/wp-admin/js/updates.js src/wp-admin/js/updates.js
new file mode 100644
index 0000000..20c5278
--- /dev/null
+++ src/wp-admin/js/updates.js
@@ -0,0 +1,55 @@
+window.wp = window.wp || {};
+
+(function( $, wp ) {
+
+	/**
+	 * Decrement update counts throughout the various menus
+	 *
+	 * @param {string} updateType
+	 */
+	wp.decrementUpdateCount = function( upgradeType ) {
+		var count, pluginCount, $elem;
+
+		$elem = $( '#wp-admin-bar-updates .ab-label');
+		count = $elem.text();
+		count = parseInt( count, 10 ) - 1;
+		$elem.text( count );
+
+		$elem = $('a[href="update-core.php"] .update-plugins');
+		$elem.each( function( index, elem ) {
+			elem.className = elem.className.replace( /count-\d+/, 'count-' + count );
+		} );
+		$elem.find( '.update-count' ).text( count );
+
+		if ( 'plugin' === upgradeType ) {
+			$elem = $( '#menu-plugins' );
+			pluginCount = $elem.find( '.plugin-count' ).eq(0).text();
+			pluginCount = parseInt( pluginCount, 10 ) - 1;
+			$elem.find( '.plugin-count' ).text( pluginCount );
+			$elem.find( '.update-plugins' ).each( function( index, elem ) {
+				elem.className = elem.className.replace( /count-\d+/, 'count-' + pluginCount );
+			} );
+		}
+	};
+
+	$( window ).on( 'message', function( e ) {
+		var event = e.originalEvent,
+			message,
+			loc = document.location,
+			expectedOrigin = loc.protocol + '//' + loc.hostname;
+
+		if ( event.origin !== expectedOrigin ) {
+			return;
+		}
+
+		message = $.parseJSON( event.data );
+
+		if ( typeof message.action === 'undefined' || message.action !== 'decrementUpdateCount' ) {
+			return;
+		}
+
+		wp.decrementUpdateCount( message.upgradeType );
+
+	} );
+
+})( jQuery, window.wp );
diff --git src/wp-admin/plugins.php src/wp-admin/plugins.php
index 61efcf5..8b1e4a0 100644
--- src/wp-admin/plugins.php
+++ src/wp-admin/plugins.php
@@ -113,6 +113,7 @@ if ( $action ) {
 			$title = __( 'Update Plugins' );
 			$parent_file = 'plugins.php';
 
+			wp_enqueue_script('updates');
 			require_once(ABSPATH . 'wp-admin/admin-header.php');
 
 			echo '<div class="wrap">';
diff --git src/wp-admin/update-core.php src/wp-admin/update-core.php
index 5b84ec4..aa2d19b 100644
--- src/wp-admin/update-core.php
+++ src/wp-admin/update-core.php
@@ -11,6 +11,7 @@ require_once( dirname( __FILE__ ) . '/admin.php' );
 
 wp_enqueue_style( 'plugin-install' );
 wp_enqueue_script( 'plugin-install' );
+wp_enqueue_script( 'updates' );
 add_thickbox();
 
 if ( is_multisite() && ! is_network_admin() ) {
diff --git src/wp-admin/update.php src/wp-admin/update.php
index e70d9c2..551da8e 100644
--- src/wp-admin/update.php
+++ src/wp-admin/update.php
@@ -37,7 +37,7 @@ if ( isset($_GET['action']) ) {
 		$url = 'update.php?action=update-selected&amp;plugins=' . urlencode(implode(',', $plugins));
 		$nonce = 'bulk-update-plugins';
 
-		wp_enqueue_script('jquery');
+		wp_enqueue_script('updates');
 		iframe_header();
 
 		$upgrader = new Plugin_Upgrader( new Bulk_Plugin_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
@@ -54,6 +54,8 @@ if ( isset($_GET['action']) ) {
 		$title = __('Update Plugin');
 		$parent_file = 'plugins.php';
 		$submenu_file = 'plugins.php';
+
+		wp_enqueue_script('updates');
 		require_once(ABSPATH . 'wp-admin/admin-header.php');
 
 		$nonce = 'upgrade-plugin_' . $plugin;
@@ -154,6 +156,7 @@ if ( isset($_GET['action']) ) {
 		check_admin_referer('upgrade-theme_' . $theme);
 
 		wp_enqueue_script( 'customize-loader' );
+		wp_enqueue_script( 'updates' );
 
 		$title = __('Update Theme');
 		$parent_file = 'themes.php';
@@ -185,7 +188,7 @@ if ( isset($_GET['action']) ) {
 		$url = 'update.php?action=update-selected-themes&amp;themes=' . urlencode(implode(',', $themes));
 		$nonce = 'bulk-update-themes';
 
-		wp_enqueue_script('jquery');
+		wp_enqueue_script('updates');
 		iframe_header();
 
 		$upgrader = new Theme_Upgrader( new Bulk_Theme_Upgrader_Skin( compact( 'nonce', 'url' ) ) );
diff --git src/wp-includes/admin-bar.php src/wp-includes/admin-bar.php
index 67e6a1a..3f68673 100644
--- src/wp-includes/admin-bar.php
+++ src/wp-includes/admin-bar.php
@@ -693,10 +693,7 @@ function wp_admin_bar_updates_menu( $wp_admin_bar ) {
 	$wp_admin_bar->add_menu( array(
 		'id'    => 'updates',
 		'title' => $title,
-		'href'  => network_admin_url( 'update-core.php' ),
-		'meta'  => array(
-			'title' => $update_data['title'],
-		),
+		'href'  => network_admin_url( 'update-core.php' )
 	) );
 }
 
diff --git src/wp-includes/script-loader.php src/wp-includes/script-loader.php
index 6414760..649f95b 100644
--- src/wp-includes/script-loader.php
+++ src/wp-includes/script-loader.php
@@ -477,6 +477,8 @@ function wp_default_scripts( &$scripts ) {
 			'ays' => __('Are you sure you want to install this plugin?')
 		) );
 
+		$scripts->add( 'updates', "/wp-admin/js/updates$suffix.js", array( 'jquery' ) );
+
 		$scripts->add( 'farbtastic', '/wp-admin/js/farbtastic.js', array('jquery'), '1.2' );
 
 		$scripts->add( 'iris', '/wp-admin/js/iris.min.js', array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), false, 1 );
