Index: src/wp-admin/includes/class-wp-upgrader.php
===================================================================
--- src/wp-admin/includes/class-wp-upgrader.php	(revision 25422)
+++ src/wp-admin/includes/class-wp-upgrader.php	(working copy)
@@ -424,7 +424,7 @@
 
 		add_filter('upgrader_source_selection', array($this, 'check_package') );
 
-		$this->run( array(
+		$run_result = $this->run( array(
 			'package' => $package,
 			'destination' => WP_PLUGIN_DIR,
 			'clear_destination' => false, // Do not overwrite files.
@@ -434,6 +434,9 @@
 
 		remove_filter('upgrader_source_selection', array($this, 'check_package') );
 
+		if ( ! $run_result || is_wp_error( $run_result ) )
+			return $run_result;
+
 		if ( ! $this->result || is_wp_error($this->result) )
 			return $this->result;
 
@@ -471,7 +474,7 @@
 		add_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'), 10, 4);
 		//'source_selection' => array($this, 'source_selection'), //there's a trac ticket to move up the directory for zip's which are made a bit differently, useful for non-.org plugins.
 
-		$this->run( array(
+		$run_result = $this->run( array(
 			'package' => $r->package,
 			'destination' => WP_PLUGIN_DIR,
 			'clear_destination' => true,
@@ -485,6 +488,9 @@
 		remove_filter('upgrader_pre_install', array($this, 'deactivate_plugin_before_upgrade'));
 		remove_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'));
 
+		if ( ! $run_result || is_wp_error( $run_result ) )
+			return $run_result;
+
 		if ( ! $this->result || is_wp_error($this->result) )
 			return $this->result;
 
@@ -797,7 +803,7 @@
 		add_filter('upgrader_source_selection', array($this, 'check_package') );
 		add_filter('upgrader_post_install', array($this, 'check_parent_theme_filter'), 10, 3);
 
-		$this->run( array(
+		$run_result = $this->run( array(
 			'package' => $package,
 			'destination' => get_theme_root(),
 			'clear_destination' => false, //Do not overwrite files.
@@ -807,6 +813,9 @@
 		remove_filter('upgrader_source_selection', array($this, 'check_package') );
 		remove_filter('upgrader_post_install', array($this, 'check_parent_theme_filter'));
 
+		if ( ! $run_result || is_wp_error( $run_result ) )
+			return $run_result;
+
 		if ( ! $this->result || is_wp_error($this->result) )
 			return $this->result;
 
@@ -844,7 +853,7 @@
 		add_filter('upgrader_post_install', array($this, 'current_after'), 10, 2);
 		add_filter('upgrader_clear_destination', array($this, 'delete_old_theme'), 10, 4);
 
-		$this->run( array(
+		$run_result = $this->run( array(
 			'package' => $r['package'],
 			'destination' => get_theme_root( $theme ),
 			'clear_destination' => true,
@@ -858,6 +867,9 @@
 		remove_filter('upgrader_post_install', array($this, 'current_after'));
 		remove_filter('upgrader_clear_destination', array($this, 'delete_old_theme'));
 
+		if ( ! $run_result || is_wp_error( $run_result ) )
+			return $run_result;
+
 		if ( ! $this->result || is_wp_error($this->result) )
 			return $this->result;
 
Index: src/wp-admin/update.php
===================================================================
--- src/wp-admin/update.php	(revision 25372)
+++ src/wp-admin/update.php	(working copy)
@@ -140,7 +140,7 @@
 		$upgrader = new Plugin_Upgrader( new Plugin_Installer_Skin( compact('type', 'title', 'nonce', 'url') ) );
 		$result = $upgrader->install( $file_upload->package );
 
-		if ( $result || is_wp_error($result) )
+		if ( false !== $result )
 			$file_upload->cleanup();
 
 		include(ABSPATH . 'wp-admin/admin-footer.php');
@@ -246,7 +246,7 @@
 		$upgrader = new Theme_Upgrader( new Theme_Installer_Skin( compact('type', 'title', 'nonce', 'url') ) );
 		$result = $upgrader->install( $file_upload->package );
 
-		if ( $result || is_wp_error($result) )
+		if ( false !== $result )
 			$file_upload->cleanup();
 
 		include(ABSPATH . 'wp-admin/admin-footer.php');
