diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php b/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
index b472b8f..ea306b1 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
@@ -466,11 +466,11 @@ public function importChange($name, Config $new_config, Config $old_config) {
     $entity->original = clone $entity;
 
     foreach ($old_config->get() as $property => $value) {
-      $entity->original->$property = $value;
+      $entity->original->set($property, $value);
     }
 
     foreach ($new_config->get() as $property => $value) {
-      $entity->$property = $value;
+      $entity->set($property, $value);
     }
 
     $entity->save();
diff --git a/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php
index dd24224..4a3a9a2 100644
--- a/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php
+++ b/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php
@@ -128,4 +128,20 @@ function prepareSiteNameUpdate($new_site_name) {
     $config_data['name'] = $new_site_name;
     $staging->write('system.site', $config_data);
   }
+
+  /**
+   * Tests updating existing configuration.
+   */
+  public function testUpdate() {
+    module_enable(array('views'));
+
+    $config_data = config('views.view.archive')->get();
+    $config_data['description'] = $this->randomName();
+    $this->container->get('config.storage.staging')->write('views.view.archive', $config_data);
+
+    $this->drupalGet('admin/config/development/sync');
+    $this->drupalPost(NULL, array(), t('Import all'));
+    $this->assertText(t('There is no configuration to import.'));
+  }
+
 }
