Index: class-wp-upgrader.php
===================================================================
--- class-wp-upgrader.php	(revision 15646)
+++ class-wp-upgrader.php	(working copy)
@@ -422,7 +423,6 @@
 		// Get the URL to the zip file
 		$r = $current->response[ $plugin ];
 
-		add_filter('upgrader_pre_install', array(&$this, 'deactivate_plugin_before_upgrade'), 10, 2);
 		add_filter('upgrader_clear_destination', array(&$this, 'delete_old_plugin'), 10, 4);
 		//'source_selection' => array(&$this, 'source_selection'), //theres a track ticket to move up the directory for zip's which are made a bit differently, useful for non-.org plugins.
 
@@ -437,7 +437,6 @@
 				));
 
 		// Cleanup our hooks, incase something else does a upgrade on this connection.
-		remove_filter('upgrader_pre_install', array(&$this, 'deactivate_plugin_before_upgrade'));
 		remove_filter('upgrader_clear_destination', array(&$this, 'delete_old_plugin'));
 
 		if ( ! $this->result || is_wp_error($this->result) )
@@ -546,23 +545,6 @@
 		return $this->result['destination_name'] . '/' . $pluginfiles[0];
 	}
 
-	//Hooked to pre_install
-	function deactivate_plugin_before_upgrade($return, $plugin) {
-
-		if ( is_wp_error($return) ) //Bypass.
-			return $return;
-
-		$plugin = isset($plugin['plugin']) ? $plugin['plugin'] : '';
-		if ( empty($plugin) )
-			return new WP_Error('bad_request', $this->strings['bad_request']);
-
-		if ( is_plugin_active($plugin) ) {
-			$this->skin->feedback('deactivate_plugin');
-			//Deactivate the plugin silently, Prevent deactivation hooks from running.
-			deactivate_plugins($plugin, true);
-		}
-	}
-
 	//Hooked to upgrade_clear_destination
 	function delete_old_plugin($removed, $local_destination, $remote_destination, $plugin) {
 		global $wp_filesystem;
@@ -1030,19 +1012,12 @@
 
 	function after() {
 		$this->plugin = $this->upgrader->plugin_info();
-		if ( !empty($this->plugin) && !is_wp_error($this->result) && $this->plugin_active ){
-			show_message(__('Reactivating the plugin&#8230;'));
-			echo '<iframe style="border:0;overflow:hidden" width="100%" height="170px" src="' . wp_nonce_url('update.php?action=activate-plugin&networkwide=' . $this->plugin_network_active . '&plugin=' . $this->plugin, 'activate-plugin_' . $this->plugin) .'"></iframe>';
-		}
 
 		$update_actions =  array(
-			'activate_plugin' => '<a href="' . wp_nonce_url('plugins.php?action=activate&amp;plugin=' . $this->plugin, 'activate-plugin_' . $this->plugin) . '" title="' . esc_attr__('Activate this plugin') . '" target="_parent">' . __('Activate Plugin') . '</a>',
 			'plugins_page' => '<a href="' . admin_url('plugins.php') . '" title="' . esc_attr__('Go to plugins page') . '" target="_parent">' . __('Return to Plugins page') . '</a>'
 		);
-		if ( $this->plugin_active )
-			unset( $update_actions['activate_plugin'] );
-		if ( ! $this->result || is_wp_error($this->result) )
-			unset( $update_actions['activate_plugin'] );
+		if ( !$this->plugin_active && !is_wp_error($this->result) && $this->result )
+			$update_actions[ 'activate_plugin' ] = '<a href="' . wp_nonce_url('plugins.php?action=activate&amp;plugin=' . $this->plugin, 'activate-plugin_' . $this->plugin) . '" title="' . esc_attr__('Activate this plugin') . '" target="_parent">' . __('Activate Plugin') . '</a>';
 
 		$update_actions = apply_filters('update_plugin_complete_actions', $update_actions, $this->plugin);
 		if ( ! empty($update_actions) )
