diff --git a/core/modules/config/src/Tests/ConfigSchemaTest.php b/core/modules/config/src/Tests/ConfigSchemaTest.php
index 4082dfa96c4a0c6b76e4def47c3e5d2ca8608d44..8a8f649873f2248fdfa51854da7b9ba80fecbe87 100644
--- a/core/modules/config/src/Tests/ConfigSchemaTest.php
+++ b/core/modules/config/src/Tests/ConfigSchemaTest.php
@@ -288,14 +288,8 @@ function testSchemaMappingWithParents() {
    * Tests metadata applied to configuration objects.
    */
   function testSchemaData() {
-    // Try some simple properties.
+    // Try a simple property.
     $meta = \Drupal::service('config.typed')->get('system.site');
-    $property = $meta->get('name');
-    $this->assertTrue($property instanceof StringInterface, 'Got the right wrapper fo the site name property.');
-    $this->assertEqual($property->getValue(), 'Drupal', 'Got the right string value for site name data.');
-    $definition = $property->getDataDefinition();
-    $this->assertTrue($definition['translatable'], 'Got the right translatability setting for site name data.');
-
     $property = $meta->get('page')->get('front');
     $this->assertTrue($property instanceof StringInterface, 'Got the right wrapper fo the page.front property.');
     $this->assertEqual($property->getValue(), 'user/login', 'Got the right value for page.front data.');
diff --git a/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php b/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php
index d5a7c210263470112797430eaed5e8895647f1ba..4535b9b3dae285eb442c07e567677042cbadcafd 100644
--- a/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php
+++ b/core/modules/locale/src/Tests/LocaleConfigTranslationTest.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\locale\Tests;
 
+use Drupal\Component\Utility\SafeMarkup;
 use Drupal\simpletest\WebTestBase;
 use Drupal\core\language\languageInterface;
 
@@ -45,7 +46,7 @@ protected function setUp() {
   public function testConfigTranslation() {
     // Add custom language.
     $langcode = 'xx';
-    $admin_user = $this->drupalCreateUser(array('administer languages', 'access administration pages', 'translate interface', 'administer modules', 'access site-wide contact form', 'administer contact forms'));
+    $admin_user = $this->drupalCreateUser(array('administer languages', 'access administration pages', 'translate interface', 'administer modules', 'access site-wide contact form', 'administer contact forms', 'administer site configuration'));
     $this->drupalLogin($admin_user);
     $name = $this->randomMachineName(16);
     $edit = array(
@@ -59,12 +60,13 @@ public function testConfigTranslation() {
     $edit = array("prefix[$langcode]" => $langcode);
     $this->drupalPostForm('admin/config/regional/language/detection/url', $edit, t('Save configuration'));
 
-    // Check site name string exists and create translation for it.
-    $string = $this->storage->findString(array('source' => 'Drupal', 'context' => '', 'type' => 'configuration'));
+    // Check that the maintenance message exists and create translation for it.
+    $source = '@site is currently under maintenance. We should be back shortly. Thank you for your patience.';
+    $string = $this->storage->findString(array('source' => $source, 'context' => '', 'type' => 'configuration'));
     $this->assertTrue($string, 'Configuration strings have been created upon installation.');
 
     // Translate using the UI so configuration is refreshed.
-    $site_name = $this->randomMachineName(20);
+    $message = $this->randomMachineName(20);
     $search = array(
       'string' => $string->source,
       'langcode' => $langcode,
@@ -75,18 +77,14 @@ public function testConfigTranslation() {
     $textarea = current($textareas);
     $lid = (string) $textarea[0]['name'];
     $edit = array(
-      $lid => $site_name,
+      $lid => $message,
     );
     $this->drupalPostForm('admin/config/regional/translate', $edit, t('Save translations'));
 
-    // Get translation and check we've only got the site name.
-    $translation = \Drupal::languageManager()->getLanguageConfigOverride($langcode, 'system.site')->get();
+    // Get translation and check we've only got the message.
+    $translation = \Drupal::languageManager()->getLanguageConfigOverride($langcode, 'system.maintenance')->get();
     $this->assertEqual(count($translation), 1, 'Got the right number of properties after translation.');
-    $this->assertEqual($translation['name'], $site_name, 'Got the right translation for the site name.');
-
-    // Check the translated site name is displayed.
-    $this->drupalGet($langcode);
-    $this->assertText($site_name, 'The translated site name is displayed after translations refreshed.');
+    $this->assertEqual($translation['message'], $message);
 
     // Check default medium date format exists and create a translation for it.
     $string = $this->storage->findString(array('source' => 'D, m/d/Y - H:i', 'context' => 'PHP date format', 'type' => 'configuration'));
diff --git a/core/modules/system/config/install/system.site.yml b/core/modules/system/config/install/system.site.yml
index 403e4640967643335e88aa7dc9620d7c975042f7..9eb22f3e05f171446a439fa3eb26d5c549a8ecbb 100644
--- a/core/modules/system/config/install/system.site.yml
+++ b/core/modules/system/config/install/system.site.yml
@@ -1,5 +1,5 @@
 uuid: ''
-name: Drupal
+name: ''
 mail: ''
 slogan: ''
 page:
diff --git a/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php b/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
index a5bbe745d34700f684a075b95dbbc8231695290b..6cf92efc131359351b57f9b33eea8f9f9a889eef 100644
--- a/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
+++ b/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
@@ -18,6 +18,15 @@
  */
 class TokenReplaceUnitTest extends TokenReplaceUnitTestBase {
 
+  /**
+   * @inheritdoc
+   */
+  protected function setUp() {
+    parent::setUp();
+    // Set the site name to something other than an empty string.
+    $this->config('system.site')->set('name', 'Drupal')->save();
+  }
+
   /**
    * Test whether token-replacement works in various contexts.
    */
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index 4a8683eaae8ad41b46eaf245a24f50c1f255f560..94c8e33b6fb7accde4234264724d7c22bbb2ae2c 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -644,10 +644,13 @@ function system_install() {
   $cron_key = Crypt::randomBytesBase64(55);
   \Drupal::state()->set('system.cron_key', $cron_key);
 
-  // Populate the site UUID.
-  \Drupal::configFactory()->getEditable('system.site')
-    ->set('uuid', \Drupal::service('uuid')->generate())
-    ->save();
+  // Populate the site UUID and default name (if not set).
+  $site = \Drupal::configFactory()->getEditable('system.site');
+  $site->set('uuid', \Drupal::service('uuid')->generate());
+  if (!$site->get('name')) {
+    $site->set('name', 'Drupal');
+  }
+  $site->save();
 }
 
 /**