diff --git a/core/Widget/WidgetContainerConfig.php b/core/Widget/WidgetContainerConfig.php
index 258d182ab4c386fb9fc1fce0bd6271248958024b..ffbb028cd77201a93a3aff07568249c68dc158ce 100644
--- a/core/Widget/WidgetContainerConfig.php
+++ b/core/Widget/WidgetContainerConfig.php
@@ -95,6 +95,16 @@ class WidgetContainerConfig extends WidgetConfig
         return $this;
     }
 
+    /**
+     * Set (overwrite) widget configs.
+     *
+     * @param WidgetConfig[] $configs
+     */
+    public function setWidgetConfigs($configs)
+    {
+        $this->widgets = $configs;
+    }
+
     /**
      * Get all added widget configs.
      *
diff --git a/tests/PHPUnit/Unit/Widget/WidgetContainerConfigTest.php b/tests/PHPUnit/Unit/Widget/WidgetContainerConfigTest.php
index 7a2d3fedaec1c4903e698f9f8912fd31ac9a9ce6..8e834934d612bcb99372a9f897e5ead36822c951 100644
--- a/tests/PHPUnit/Unit/Widget/WidgetContainerConfigTest.php
+++ b/tests/PHPUnit/Unit/Widget/WidgetContainerConfigTest.php
@@ -270,6 +270,24 @@ class WidgetContainerConfigTest extends \PHPUnit_Framework_TestCase
         ), $this->config->getWidgetConfigs());
     }
 
+    public function test_setWidgetConfigs_canOverwriteWidgets()
+    {
+        $this->assertSame(array(), $this->config->getWidgetConfigs());
+
+        $this->config->addWidgetConfig($widget1 = $this->createWidgetConfig('widget1'));
+        $this->config->addWidgetConfig($widget2 = $this->createWidgetConfig('widget2'));
+        $this->assertSame(array($widget1,$widget2), $this->config->getWidgetConfigs());
+
+        $widget3 = $this->createWidgetConfig('widget3');
+        $widget4 = new WidgetContainerConfig();
+        $this->config->setWidgetConfigs(array($widget2, $widget3, $widget4));
+        $this->assertSame(array(
+            $widget2,
+            $widget3,
+            $widget4
+        ), $this->config->getWidgetConfigs());
+    }
+
     private function createWidgetConfig($widgetName)
     {
         $config = new WidgetConfig();