diff --git a/app/code/Magento/CatalogRule/Plugin/Model/Product/Action.php b/app/code/Magento/CatalogRule/Plugin/Model/Product/Action.php
new file mode 100644
index 0000000000000000000000000000000000000000..c9dbc6742abffc139f7c15d8a0cdfd32c3846aef
--- /dev/null
+++ b/app/code/Magento/CatalogRule/Plugin/Model/Product/Action.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ */
+
+namespace Magento\CatalogRule\Plugin\Model\Product;
+
+use Magento\Catalog\Model\Product\Action as ProductAction;
+use Magento\CatalogRule\Model\Indexer\Product\ProductRuleProcessor;
+
+class Action
+{
+    /**
+     * @var ProductRuleProcessor
+     */
+    protected $productRuleProcessor;
+
+    /**
+     * @param ProductRuleProcessor $productRuleProcessor
+     */
+    public function __construct(ProductRuleProcessor $productRuleProcessor)
+    {
+        $this->productRuleProcessor = $productRuleProcessor;
+    }
+
+    /**
+     * @param ProductAction $object
+     * @param ProductAction $result
+     * @return ProductAction
+     *
+     * @SuppressWarnings(PHPMD.UnusedFormatParameter)
+     */
+    public function afterUpdateAttributes(ProductAction $object, ProductAction $result)
+    {
+        $data = $result->getAttributesData();
+        if (!empty($data['price'])) {
+            $this->productRuleProcessor->reindexList($result->getProductIds());
+        }
+
+        return $result;
+    }
+}
diff --git a/app/code/Magento/CatalogRule/etc/adminhtml/di.xml b/app/code/Magento/CatalogRule/etc/adminhtml/di.xml
index 55eca2f1b83aeaedee7c4f2bdb6a2b2a5141c672..7268cb0de6eda456803dd18572bbb1cd0a1e4e75 100644
--- a/app/code/Magento/CatalogRule/etc/adminhtml/di.xml
+++ b/app/code/Magento/CatalogRule/etc/adminhtml/di.xml
@@ -31,4 +31,7 @@
     <type name="Magento\Catalog\Model\Resource\Eav\Attribute">
         <plugin name="change_product_attribute" type="Magento\CatalogRule\Plugin\Indexer\Product\Attribute"/>
     </type>
+    <type name="Magento\Catalog\Model\Product\Action">
+        <plugin name="price_plugin" type="Magento\CatalogRule\Plugin\Model\Product\Action"/>
+    </type>
 </config>
diff --git a/dev/tests/unit/testsuite/Magento/CatalogRule/Plugin/Model/Product/ActionTest.php b/dev/tests/unit/testsuite/Magento/CatalogRule/Plugin/Model/Product/ActionTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..189e4b63018d71651287e8817f60accba65bc133
--- /dev/null
+++ b/dev/tests/unit/testsuite/Magento/CatalogRule/Plugin/Model/Product/ActionTest.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * @copyright Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
+ */
+
+namespace Magento\CatalogRule\Plugin\Model\Product;
+
+class ActionTest extends \PHPUnit_Framework_TestCase
+{
+    /** @var \Magento\CatalogRule\Plugin\Model\Product\Action */
+    protected $action;
+
+    /** @var \Magento\CatalogRule\Model\Indexer\Product\ProductRuleProcessor|\PHPUnit_Framework_MockObject_MockObject */
+    protected $productRuleProcessor;
+
+    protected function setUp()
+    {
+        $this->productRuleProcessor = $this->getMockBuilder(
+            'Magento\CatalogRule\Model\Indexer\Product\ProductRuleProcessor'
+        )->disableOriginalConstructor()
+        ->setMethods(['reindexList'])
+        ->getMock();
+
+        $this->action = new Action($this->productRuleProcessor);
+    }
+
+    public function testAfterUpdateAttributes()
+    {
+        $subject = $this->getMockBuilder('Magento\Catalog\Model\Product\Action')
+            ->disableOriginalConstructor()
+            ->setMethods([])
+            ->getMock();
+
+        $result = $this->getMockBuilder('Magento\Catalog\Model\Product\Action')
+            ->disableOriginalConstructor()
+            ->setMethods(['getAttributesData', 'getProductIds'])
+            ->getMock();
+
+        $result->expects($this->once())
+            ->method('getAttributesData')
+            ->willReturn([]);
+
+        $result->expects($this->never())
+            ->method('getProductIds');
+
+        $this->productRuleProcessor->expects($this->never())
+            ->method('reindexList');
+
+        $this->action->afterUpdateAttributes($subject, $result);
+    }
+
+    public function testAfterUpdateAttributesWithPrice()
+    {
+        $productIds = [1, 2, 3];
+        $subject = $this->getMockBuilder('Magento\Catalog\Model\Product\Action')
+            ->disableOriginalConstructor()
+            ->setMethods([])
+            ->getMock();
+
+        $result = $this->getMockBuilder('Magento\Catalog\Model\Product\Action')
+            ->disableOriginalConstructor()
+            ->setMethods(['getAttributesData', 'getProductIds'])
+            ->getMock();
+
+        $result->expects($this->once())
+            ->method('getAttributesData')
+            ->willReturn(['price' => 100]);
+
+        $result->expects($this->once())
+            ->method('getProductIds')
+            ->willReturn($productIds);
+
+        $this->productRuleProcessor->expects($this->once())
+            ->method('reindexList')
+            ->with($productIds);
+
+        $this->action->afterUpdateAttributes($subject, $result);
+    }
+}