diff --git a/core/lib/Drupal/Core/Config/Config.php b/core/lib/Drupal/Core/Config/Config.php
index b3b51c2..d354799 100644
--- a/core/lib/Drupal/Core/Config/Config.php
+++ b/core/lib/Drupal/Core/Config/Config.php
@@ -80,7 +80,6 @@ public function initWithData(array $data) {
     parent::initWithData($data);
     $this->settingsOverrides = array();
     $this->moduleOverrides = array();
-    $this->setData($data);
     return $this;
   }
 
@@ -109,8 +108,8 @@ public function get($key = '') {
   /**
    * {@inheritdoc}
    */
-  public function setData(array $data) {
-    parent::setData($data);
+  public function setData(array $data, $validate_keys = TRUE) {
+    parent::setData($data, $validate_keys);
     $this->resetOverriddenData();
     return $this;
   }
diff --git a/core/lib/Drupal/Core/Config/ConfigBase.php b/core/lib/Drupal/Core/Config/ConfigBase.php
index 552eacf..3e6b742 100644
--- a/core/lib/Drupal/Core/Config/ConfigBase.php
+++ b/core/lib/Drupal/Core/Config/ConfigBase.php
@@ -157,6 +157,8 @@ public function get($key = '') {
    *
    * @param array $data
    *   The new configuration data.
+   * @param bool $validate_keys
+   *   Whether the data should be verified for valid keys.
    *
    * @return $this
    *   The configuration object.
@@ -164,8 +166,10 @@ public function get($key = '') {
    * @throws \Drupal\Core\Config\ConfigValueException
    *   If any key in $data in any depth contains a dot.
    */
-  public function setData(array $data) {
-    $this->validateKeys($data);
+  public function setData(array $data, $validate_keys = TRUE) {
+    if ($validate_keys) {
+      $this->validateKeys($data);
+    }
     $this->data = $data;
     return $this;
   }
diff --git a/core/lib/Drupal/Core/Config/StorableConfigBase.php b/core/lib/Drupal/Core/Config/StorableConfigBase.php
index 5c6e8b3..505a1bf 100644
--- a/core/lib/Drupal/Core/Config/StorableConfigBase.php
+++ b/core/lib/Drupal/Core/Config/StorableConfigBase.php
@@ -90,7 +90,7 @@
    */
   public function initWithData(array $data) {
     $this->isNew = FALSE;
-    $this->setData($data);
+    $this->setData($data, FALSE);
     $this->originalData = $this->data;
     return $this;
   }
