Index: src/wp-includes/ms-blogs.php
===================================================================
--- src/wp-includes/ms-blogs.php	(revision 28652)
+++ src/wp-includes/ms-blogs.php	(working copy)
@@ -264,6 +264,18 @@
 }
 
 /**
+ * Refresh blog details when an option is updated.
+ *
+ * @access private
+ */
+function _wp_refresh_blog_details_on_updated_option( $option_name ) {
+	$options = array( 'blogname', 'siteurl', 'post_count' );
+	if ( in_array( $option_name, $options ) ) {
+		refresh_blog_details( get_current_blog_id() );
+	}
+}
+
+/**
  * Update the details for a blog. Updates the blogs table for a given blog id.
  *
  * @since MU
Index: src/wp-includes/ms-default-filters.php
===================================================================
--- src/wp-includes/ms-default-filters.php	(revision 28652)
+++ src/wp-includes/ms-default-filters.php	(working copy)
@@ -69,6 +69,9 @@
 remove_filter( 'option_siteurl', '_config_wp_siteurl' );
 remove_filter( 'option_home',    '_config_wp_home'    );
 
+// Some options changes should trigger blog details refresh.
+add_action( 'updated_option', '_wp_refresh_blog_details_on_updated_option' );
+
 // If the network upgrade hasn't run yet, assume ms-files.php rewriting is used.
 add_filter( 'default_site_option_ms_files_rewriting', '__return_true' );
 
Index: tests/phpunit/tests/ms.php
===================================================================
--- tests/phpunit/tests/ms.php	(revision 28652)
+++ tests/phpunit/tests/ms.php	(working copy)
@@ -1385,6 +1385,19 @@
 			$GLOBALS['super_admins'] = $old_global;
 		}
 	}
+
+	/**
+	 * @ticket 26410
+	 */
+	function test_blog_details_cache_invalidation() {
+		update_option( 'blogname', 'foo' );
+		$details = get_blog_details( get_current_blog_id() );
+		$this->assertEquals( 'foo', $details->blogname );
+
+		update_option( 'blogname', 'bar' );
+		$details = get_blog_details( get_current_blog_id() );
+		$this->assertEquals( 'bar', $details->blogname );
+	}
 }
 
 endif;
