Index: wp-admin/includes/update-core.php
===================================================================
--- wp-admin/includes/update-core.php	(revision 15057)
+++ wp-admin/includes/update-core.php	(working copy)
@@ -266,7 +266,7 @@
  * @return WP_Error|null WP_Error on failure, null on success.
  */
 function update_core($from, $to) {
-	global $wp_filesystem, $_old_files, $wpdb;
+	global $wp_filesystem, $_old_files, $wpdb, $wpmu_version;
 
 	@set_time_limit( 300 );
 
@@ -288,10 +288,15 @@
 	elseif ( !$mysql_compat )
 		return new WP_Error( 'mysql_not_compatible', sprintf( __('The update cannot be installed because WordPress %1$s requires MySQL version %2$s or higher. You are running version %3$s.'), $wp_version, $required_mysql_version, $mysql_version ) );
 
+	if ( isset($wpmu_version) )
+		$wp_dir = 'wordpress-mu';
+	else
+		$wp_dir = 'wordpress';
+
 	// Sanity check the unzipped distribution
 	apply_filters('update_feedback', __('Verifying the unpacked files&#8230;'));
-	if ( !$wp_filesystem->exists($from . '/wordpress/wp-settings.php') || !$wp_filesystem->exists($from . '/wordpress/wp-admin/admin.php') ||
-		!$wp_filesystem->exists($from . '/wordpress/wp-includes/functions.php') ) {
+	if ( !$wp_filesystem->exists($from . "/$wp_dir/wp-settings.php") || !$wp_filesystem->exists($from . "/$wp_dir/wp-admin/admin.php") ||
+		!$wp_filesystem->exists($from . "/$wp_dir/wp-includes/functions.php") ) {
 		$wp_filesystem->delete($from, true);
 		return new WP_Error('insane_distro', __('The update could not be unpacked') );
 	}
@@ -305,7 +310,7 @@
 	$wp_filesystem->put_contents($maintenance_file, $maintenance_string, FS_CHMOD_FILE);
 
 	// Copy new versions of WP files into place.
-	$result = copy_dir($from . '/wordpress', $to);
+	$result = copy_dir($from . "/$wp_dir", $to);
 	if ( is_wp_error($result) ) {
 		$wp_filesystem->delete($maintenance_file);
 		$wp_filesystem->delete($from, true);
