Index: wp-includes/functions.php
===================================================================
--- wp-includes/functions.php	(revision 15185)
+++ wp-includes/functions.php	(working copy)
@@ -2121,18 +2121,17 @@
  * @return array See above for description.
  */
 function wp_upload_dir( $time = null ) {
-	global $switched;
+	global $switched, $blog_id;
 	$siteurl = get_option( 'siteurl' );
 	$upload_path = get_option( 'upload_path' );
 	$upload_path = trim($upload_path);
-	$main_override = false;
+	$main_override = defined( 'MULTISITE' ) && is_main_site( $blog_id );
 	if ( empty($upload_path) ) {
 		$dir = WP_CONTENT_DIR . '/uploads';
 	} else {
 		$dir = $upload_path;
 		if ( 'wp-content/uploads' == $upload_path ) {
 			$dir = WP_CONTENT_DIR . '/uploads';
-			$main_override = defined( 'MULTISITE' ) && is_main_site();
 		} elseif ( 0 !== strpos($dir, ABSPATH) ) {
 			// $dir is absolute, $upload_path is (maybe) relative to ABSPATH
 			$dir = path_join( ABSPATH, $dir );
@@ -2146,12 +2145,12 @@
 			$url = trailingslashit( $siteurl ) . $upload_path;
 	}
 
-	if ( defined('UPLOADS') && ( !$main_override || WP_CONTENT_DIR . '/uploads' != ABSPATH . $upload_path ) && ( !isset( $switched ) || $switched === false ) ) {
+	if ( defined('UPLOADS') && !$main_override && ( !isset( $switched ) || $switched === false ) ) {
 		$dir = ABSPATH . UPLOADS;
 		$url = trailingslashit( $siteurl ) . UPLOADS;
 	}
 
-	if ( is_multisite() && ( !$main_override || WP_CONTENT_DIR . '/uploads' != ABSPATH . $upload_path ) && ( !isset( $switched ) || $switched === false ) ) {
+	if ( is_multisite() && !$main_override && ( !isset( $switched ) || $switched === false ) ) {
 		if ( defined( 'BLOGUPLOADDIR' ) )
 			$dir = untrailingslashit(BLOGUPLOADDIR);
 		$url = str_replace( UPLOADS, 'files', $url );
