diff --git a/app/code/Magento/Catalog/Block/Product/View/Options.php b/app/code/Magento/Catalog/Block/Product/View/Options.php
index 312e69083836f7a6bf679d9dcf8e0b25ab4d34ea..db3d2a911038295fbcb8942d7c61f0041a2637a5 100644
--- a/app/code/Magento/Catalog/Block/Product/View/Options.php
+++ b/app/code/Magento/Catalog/Block/Product/View/Options.php
@@ -219,8 +219,16 @@ class Options extends \Magento\Framework\View\Element\Template
             $config[$option->getId()] = $priceValue;
         }
 
-        //alter the return array from the other modules eg: weee
-        $this->_eventManager->dispatch('catalog_product_option_price_configuration_after', ['config' => &$config]);
+        $configObj = new \Magento\Framework\Object(
+            [
+                'config' => $config,
+            ]
+        );
+
+        //pass the return array encapsulated in an object for the other modules to be able to alter it eg: weee
+        $this->_eventManager->dispatch('catalog_product_option_price_configuration_after', ['configObj' => $configObj]);
+
+        $config=$configObj->getConfig();
 
         return $this->_jsonEncoder->encode($config);
     }
diff --git a/app/code/Magento/Weee/Model/Observer.php b/app/code/Magento/Weee/Model/Observer.php
index 3a09d92d135476c3870f436091d43baf7bffea74..9714f24e8fa0089c9b38c17a3da94feebd473316 100644
--- a/app/code/Magento/Weee/Model/Observer.php
+++ b/app/code/Magento/Weee/Model/Observer.php
@@ -204,7 +204,8 @@ class Observer extends \Magento\Framework\Model\AbstractModel
     public function getPriceConfiguration(\Magento\Framework\Event\Observer $observer)
     {
         if ($this->_weeeData->isEnabled()) {
-            $priceConfig=$observer->getData('config');
+            $priceConfigObj=$observer->getData('configObj');
+            $priceConfig=$priceConfigObj->getConfig();
             if (is_array($priceConfig)) {
                 foreach ($priceConfig as $keyConfigs => $configs) {
                     if (is_array($configs)) {
@@ -217,8 +218,7 @@ class Observer extends \Magento\Framework\Model\AbstractModel
                     }
                 }
             }
-
-            $observer->setData('config', $priceConfig);
+            $priceConfigObj->setConfig($priceConfig);
         }
         return $this;
     }
diff --git a/app/code/Magento/Weee/Test/Unit/Model/Observer.php b/app/code/Magento/Weee/Test/Unit/Model/ObserverTest.php
similarity index 84%
rename from app/code/Magento/Weee/Test/Unit/Model/Observer.php
rename to app/code/Magento/Weee/Test/Unit/Model/ObserverTest.php
index edb2fec221dbf31425a88d5898d79679ab69645d..63a13abb53622e5f93590a1586d695fb17e18707 100644
--- a/app/code/Magento/Weee/Test/Unit/Model/Observer.php
+++ b/app/code/Magento/Weee/Test/Unit/Model/ObserverTest.php
@@ -40,6 +40,12 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
             ],
         ];
 
+        $configObj = new \Magento\Framework\Object(
+            [
+                'config' => $testArray,
+            ]
+        );
+
         $testArrayWithWeee=$testArray;
         $testArrayWithWeee[0][0]['prices']['weeePrice']= [
             'amount' => $testArray[0][0]['prices']['finalPrice']['amount'],
@@ -57,12 +63,8 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
 
         $observerObject->expects($this->any())
             ->method('getData')
-            ->with('config')
-            ->will($this->returnValue($testArray));
-
-        $observerObject->expects($this->once())
-            ->method('setData')
-            ->with('config', $testArrayWithWeee);
+            ->with('configObj')
+            ->will($this->returnValue($configObj));
 
          $objectManager = new ObjectManager($this);
          $weeeObserverObject = $objectManager->getObject(
@@ -71,6 +73,8 @@ class ObserverTest extends \PHPUnit_Framework_TestCase
                  'weeeData' => $weeHelper,
              ]
          );
-        $weeeObserverObject->getPriceConfiguration($observerObject);
+         $weeeObserverObject->getPriceConfiguration($observerObject);
+
+         $this->assertEquals($testArrayWithWeee, $configObj->getData('config'));
     }
 }