diff --git a/core/lib/Drupal/Core/Plugin/DefaultLazyPluginCollection.php b/core/lib/Drupal/Core/Plugin/DefaultLazyPluginCollection.php
index ed3d427..00392c3 100644
--- a/core/lib/Drupal/Core/Plugin/DefaultLazyPluginCollection.php
+++ b/core/lib/Drupal/Core/Plugin/DefaultLazyPluginCollection.php
@@ -133,8 +133,14 @@ public function getConfiguration() {
    * {@inheritdoc}
    */
   public function setConfiguration($configuration) {
+    $instance_ids = $this->getInstanceIds();
     foreach ($configuration as $instance_id => $instance_configuration) {
       $this->setInstanceConfiguration($instance_id, $instance_configuration);
+      unset($instance_ids[$instance_id]);
+    }
+    // Ensure that instances that are no longer configured are removed.
+    foreach ($instance_ids as $instance_id) {
+      $this->removeInstanceId($instance_id);
     }
     return $this;
   }
diff --git a/core/modules/image/src/Tests/ImageImportTest.php b/core/modules/image/src/Tests/ImageImportTest.php
new file mode 100644
index 0000000..2d37a54
--- /dev/null
+++ b/core/modules/image/src/Tests/ImageImportTest.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\image\Tests\ImageImportTest.
+ */
+
+namespace Drupal\image\Tests;
+
+use Drupal\image\Entity\ImageStyle;
+use Drupal\simpletest\KernelTestBase;
+
+/**
+ * Tests config import for Image styles.
+ *
+ * @group image
+ */
+class ImageImportTest extends KernelTestBase {
+
+  public static $modules = array('system', 'image', 'image_module_test');
+
+  public function testImport() {
+    /**
+     * @var ImageStyle $style
+     */
+    $style = ImageStyle::create(array(
+      'name' => 'test'
+    ));
+
+    $style->addImageEffect(array('id' => 'image_module_test_null'));
+    $style->addImageEffect(array('id' => 'image_module_test_null'));
+    $style->save();
+
+    $this->assertEqual(count($style->getEffects()), 2, 'The entity contains two image effects.');
+
+    $uuid = \Drupal::service('uuid')->generate();
+    $style->set('effects', array(
+      $uuid => array(
+        'id' => 'image_module_test_null'
+      ),
+    ));
+    $style->save();
+
+    $style = ImageStyle::load('test');
+    $this->assertEqual(count($style->getEffects()), 1, 'The entity contains one image effects.');
+  }
+
+}
diff --git a/core/tests/Drupal/Tests/Core/Plugin/DefaultLazyPluginCollectionTest.php b/core/tests/Drupal/Tests/Core/Plugin/DefaultLazyPluginCollectionTest.php
index 5ae837a..79d9d2e 100644
--- a/core/tests/Drupal/Tests/Core/Plugin/DefaultLazyPluginCollectionTest.php
+++ b/core/tests/Drupal/Tests/Core/Plugin/DefaultLazyPluginCollectionTest.php
@@ -224,16 +224,19 @@ public function testConfigurableGetConfiguration() {
    * @covers ::setConfiguration
    */
   public function testConfigurableSetConfiguration() {
-    $this->setupPluginCollection($this->exactly(3));
-    $this->defaultPluginCollection->getConfiguration();
-    $this->defaultPluginCollection->setInstanceConfiguration('apple', array('value' => 'pineapple'));
+    $this->setupPluginCollection($this->exactly(2));
 
-    $expected = $this->config;
-    $expected['apple'] = array('value' => 'pineapple');
+    $this->defaultPluginCollection->setConfiguration(['apple' => ['value' => 'pineapple', 'id' => 'apple']]);
     $config = $this->defaultPluginCollection->getConfiguration();
-    $this->assertSame($expected, $config);
+    $this->assertSame(['apple' => ['value' => 'pineapple', 'id' => 'apple']], $config);
     $plugin = $this->pluginInstances['apple'];
-    $this->assertSame($expected['apple'], $plugin->getConfiguration());
+    $this->assertSame(['value' => 'pineapple', 'id' => 'apple'], $plugin->getConfiguration());
+
+    $this->defaultPluginCollection->setConfiguration(['cherry' => ['value' => 'kiwi', 'id' => 'cherry']]);
+    $expected['cherry'] = ['value' => 'kiwi', 'id' => 'cherry'];
+    $config = $this->defaultPluginCollection->getConfiguration();
+    $this->assertSame(['cherry' => ['value' => 'kiwi', 'id' => 'cherry']], $config);
+
   }
 
 }
