diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php b/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
index b2a94b0..3dd0b0a 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
@@ -470,11 +470,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/ConfigImportTest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php
index 95089f7..0220cbb 100644
--- a/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php
+++ b/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php
@@ -107,6 +107,7 @@ function testNew() {
       'uuid' => '30df59bd-7b03-4cf7-bb35-d42fc49f0651',
       'label' => 'New',
       'style' => '',
+      'description' => '',
       'langcode' => 'und',
     );
     $staging->write($dynamic_name, $original_dynamic_data);
diff --git a/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php
index dd24224..ae45858 100644
--- a/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php
+++ b/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php
@@ -59,6 +59,7 @@ function testImport() {
       'uuid' => '30df59bd-7b03-4cf7-bb35-d42fc49f0651',
       'label' => 'New',
       'style' => '',
+      'description' => '',
       'langcode' => 'und',
     );
     $staging->write($dynamic_name, $original_dynamic_data);
@@ -128,4 +129,22 @@ function prepareSiteNameUpdate($new_site_name) {
     $config_data['name'] = $new_site_name;
     $staging->write('system.site', $config_data);
   }
+
+  /**
+   * Tests updating existing configuration.
+   */
+  public function testUpdate() {
+    // Create a staged version of the configuration object with different data.
+    $config_data = config('config_test.dynamic.default')->get();
+    $config_data['description'] = $this->randomName();
+    $this->container->get('config.storage.staging')->write('config_test.dynamic.default', $config_data);
+
+    $this->drupalGet('admin/config/development/sync');
+    $this->drupalPost(NULL, array(), t('Import all'));
+    $this->assertText(t('There is no configuration to import.'));
+
+    $entity = entity_load('config_test', 'default');
+    $this->assertIdentical($entity->get('description'), $config_data['description']);
+  }
+
 }
diff --git a/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml b/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml
index 3e50e3b..df0a149 100644
--- a/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml
+++ b/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml
@@ -1,2 +1,3 @@
 id: default
 label: Default
+description: Default
diff --git a/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php b/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php
index 52da777..bf17b9e 100644
--- a/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php
+++ b/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php
@@ -62,4 +62,30 @@ class ConfigTest extends ConfigEntityBase {
    */
   public $style;
 
+  /**
+   * The description for the configuration entity.
+   *
+   * @var string
+   */
+  protected $description;
+
+  /**
+   * Overrides \Drupal\Core\Config\Entity\ConfigEntityBase::getExportProperties();
+   */
+  public function getExportProperties() {
+    $names = array(
+      'id',
+      'uuid',
+      'label',
+      'style',
+      'description',
+      'langcode',
+    );
+    $properties = array();
+    foreach ($names as $name) {
+      $properties[$name] = $this->get($name);
+    }
+    return $properties;
+  }
+
 }
