Index: src/wp-includes/class-wp-site.php
===================================================================
--- src/wp-includes/class-wp-site.php	(revision 38523)
+++ src/wp-includes/class-wp-site.php	(working copy)
@@ -170,6 +170,22 @@
 			return false;
 		}
 
+		if ( ! is_multisite() ) {
+			if ( 1 !== $site_id ) {
+				return false;
+			}
+
+			$home = parse_url( get_option( 'home' ) );
+
+			$_site = new stdClass();
+			$_site->blog_id = $site_id;
+			$_site->domain  = $home['host'];
+			$_site->path    = isset( $home['path'] ) ? $home['path'] : '/';
+			$_site->site_id = 1;
+
+			return new WP_Site( $_site );
+		}
+
 		$_site = wp_cache_get( $site_id, 'sites' );
 
 		if ( ! $_site ) {
@@ -236,7 +252,7 @@
 			case 'siteurl':
 			case 'post_count':
 			case 'home':
-				if ( ! did_action( 'ms_loaded' ) ) {
+				if ( is_multisite() && ! did_action( 'ms_loaded' ) ) {
 					return null;
 				}
 				$details = $this->get_details();
@@ -267,7 +283,7 @@
 			case 'siteurl':
 			case 'post_count':
 			case 'home':
-				if ( ! did_action( 'ms_loaded' ) ) {
+				if ( is_multisite() && ! did_action( 'ms_loaded' ) ) {
 					return false;
 				}
 				return true;
@@ -317,7 +333,10 @@
 
 		if ( false === $details ) {
 
-			switch_to_blog( $this->blog_id );
+			if ( is_multisite() ) {
+				switch_to_blog( $this->blog_id );
+			}
+
 			// Create a raw copy of the object for backwards compatibility with the filter below.
 			$details = new stdClass();
 			foreach ( get_object_vars( $this ) as $key => $value ) {
@@ -327,8 +346,11 @@
 			$details->siteurl    = get_option( 'siteurl' );
 			$details->post_count = get_option( 'post_count' );
 			$details->home       = get_option( 'home' );
-			restore_current_blog();
 
+			if ( is_multisite() ) {
+				restore_current_blog();
+			}
+
 			$cache_details = true;
 			foreach ( array( 'blogname', 'siteurl', 'post_count', 'home' ) as $field ) {
 				if ( false === $details->$field ) {
Index: src/wp-settings.php
===================================================================
--- src/wp-settings.php	(revision 38523)
+++ src/wp-settings.php	(working copy)
@@ -118,8 +118,11 @@
 	require( ABSPATH . WPINC . '/class-wp-network-query.php' );
 	require( ABSPATH . WPINC . '/ms-blogs.php' );
 	require( ABSPATH . WPINC . '/ms-settings.php' );
-} elseif ( ! defined( 'MULTISITE' ) ) {
-	define( 'MULTISITE', false );
+} else {
+	if ( ! defined( 'MULTISITE' ) ) {
+		define( 'MULTISITE', false );
+	}
+	require_once( ABSPATH . WPINC . '/class-wp-site.php' );
 }
 
 register_shutdown_function( 'shutdown_action_hook' );
