Index: wp-admin/includes/update.php
===================================================================
--- wp-admin/includes/update.php	(revision 12057)
+++ wp-admin/includes/update.php	(working copy)
@@ -145,6 +145,20 @@
 	echo "<span id='wp-version-message'>$msg</span>";
 }
 
+function get_plugin_updates() {
+	$all_plugins = get_plugins();
+	$upgrade_plugins = array();
+	$current = get_transient( 'update_plugins' );
+	foreach ( (array)$all_plugins as $plugin_file => $plugin_data) {
+		if ( isset( $current->response[ $plugin_file ] ) ) {
+			$upgrade_plugins[ $plugin_file ] = (object) $plugin_data;
+			$upgrade_plugins[ $plugin_file ]->update = $current->response[ $plugin_file ];
+		}
+	}
+
+	return $upgrade_plugins;
+}
+
 function wp_plugin_update_rows() {
 	$plugins = get_transient( 'update_plugins' );
 	if ( isset($plugins->response) && is_array($plugins->response) ) {
@@ -191,6 +205,22 @@
 	return $upgrader->upgrade($plugin);
 }
 
+function get_theme_updates() {
+	$themes = get_themes();
+	$current = get_transient('update_themes');
+	$update_themes = array();
+
+	foreach ( $themes as $theme ) {
+		$theme = (object) $theme;
+		if ( isset($current->response[ $theme->Stylesheet ]) ) {
+			$update_themes[$theme->Stylesheet] = $theme;
+			$update_themes[$theme->Stylesheet]->update = $current->response[ $theme->Stylesheet ];
+		}
+	}
+
+	return $update_themes;
+}
+
 function wp_update_theme($theme, $feedback = '') {
 
 	if ( !empty($feedback) )
Index: wp-admin/update-core.php
===================================================================
--- wp-admin/update-core.php	(revision 12057)
+++ wp-admin/update-core.php	(working copy)
@@ -127,9 +127,81 @@
 	echo '</ul>';
 	dismissed_updates();
 	echo '</div>';
+
+	list_plugin_updates();
+	list_theme_updates();
 }
 
+function list_plugin_updates() {
+	$plugins = get_plugin_updates();
+	if ( empty($plugins) )
+		return;
+?>
+<h3><?php _e('Plugins'); ?></h3>
+<table class="widefat" cellspacing="0" id="update-plugins-table">
+	<thead>
+	<tr>
+		<th scope="col" class="manage-column check-column"><input type="checkbox" /></th>
+		<th scope="col" class="manage-column"><?php _e('Name'); ?></th>
+	</tr>
+	</thead>
 
+	<tfoot>
+	<tr>
+		<th scope="col" class="manage-column check-column"><input type="checkbox" /></th>
+		<th scope="col" class="manage-column"><?php _e('Name'); ?></th>
+	</tr>
+	</tfoot>
+	<tbody class="plugins">
+<?php
+	foreach ( (array) $plugins as $plugin_file => $plugin_data) {
+		echo "
+	<tr class='active'>
+		<th scope='row' class='check-column'><input type='checkbox' name='checked[]' value='" . esc_attr($plugin_file) . "' /></th>
+		<td class='plugin-title'><strong>{$plugin_data->Name}</strong></td>
+	</tr>";
+	}
+?>
+	</tbody>
+</table>
+<?php
+}
+
+function list_theme_updates() {
+	$themes = get_theme_updates();
+	if ( empty($themes) )
+		return;
+?>
+<h3><?php _e('Themes'); ?></h3>
+<table class="widefat" cellspacing="0" id="update-themes-table">
+	<thead>
+	<tr>
+		<th scope="col" class="manage-column check-column"><input type="checkbox" /></th>
+		<th scope="col" class="manage-column"><?php _e('Name'); ?></th>
+	</tr>
+	</thead>
+
+	<tfoot>
+	<tr>
+		<th scope="col" class="manage-column check-column"><input type="checkbox" /></th>
+		<th scope="col" class="manage-column"><?php _e('Name'); ?></th>
+	</tr>
+	</tfoot>
+	<tbody class="plugins">
+<?php
+	foreach ( (array) $themes as $stylesheet => $theme_data) {
+		echo "
+	<tr class='active'>
+		<th scope='row' class='check-column'><input type='checkbox' name='checked[]' value='" . esc_attr($stylesheet) . "' /></th>
+		<td class='plugin-title'><strong>{$theme_data->Name}</strong></td>
+	</tr>";
+	}
+?>
+	</tbody>
+</table>
+<?php
+}
+
 /**
  * Upgrade WordPress core display.
  *

