diff --git a/sites/all/modules/contrib/commerce_price_table/commerce_price_table.module b/sites/all/modules/contrib/commerce_price_table/commerce_price_table.module
index ddcba56..9d4cba6 100644
--- a/sites/all/modules/contrib/commerce_price_table/commerce_price_table.module
+++ b/sites/all/modules/contrib/commerce_price_table/commerce_price_table.module
@@ -388,14 +388,16 @@ function commerce_price_table_field_formatter_view($entity_type, $entity, $field
 /**
  * Get the price for the min qty possible in a product.
  */
-function commerce_price_table_get_amount_qty($product, $quantity = 1) {
+function commerce_price_table_get_amount_qty($product, $quantity = 1, $fieldname = '') {
   $items = array();
   $product_wrapper = entity_metadata_wrapper('commerce_product', $product);
   $fields = commerce_info_fields('commerce_price_table', 'commerce_product');
   foreach ($fields as $field) {
-    if (!empty($product->{$field['field_name']})) {
-      foreach ($product_wrapper->{$field['field_name']}->value() as $item) {
-        $items[] = $item;
+    if ($fieldname == '' || $field['field_name'] == $fieldname){
+      if (!empty($product->{$field['field_name']})) {
+        foreach ($product_wrapper->{$field['field_name']}->value() as $item) {
+          $items[] = $item;
+        }
       }
     }
   }
diff --git a/sites/all/modules/contrib/commerce_price_table/commerce_price_table.rules.inc b/sites/all/modules/contrib/commerce_price_table/commerce_price_table.rules.inc
index be3d92e..73de78c 100644
--- a/sites/all/modules/contrib/commerce_price_table/commerce_price_table.rules.inc
+++ b/sites/all/modules/contrib/commerce_price_table/commerce_price_table.rules.inc
@@ -17,16 +17,32 @@ function commerce_price_table_rules_action_info() {
     'group' => t('Commerce price table'),
   );
 
+  $actions['commerce_price_table_set_price_and_table'] = array(
+    'label' => t('Replace the price for a specified price table'),
+    'parameter' => array(
+      'commerce_line_item' => array(
+        'type' => 'commerce_line_item',
+        'label' => t('Line item'),
+      ),
+      'price_table' => array(
+        'type' => 'text',
+        'label' => t('Price Table'),
+      ),
+    ),
+    'group' => t('Commerce price table'),
+  );
+
   return $actions;
 }
 
-function commerce_price_table_set_price($line_item) {
+function commerce_price_table_set_price($line_item, $price_table = '') {
   // If the line item contains a product, we set the price according to the
   // quantity.
   if (commerce_line_items_quantity(array($line_item), array('product')) > 0) {
     $line_item_wrapper = entity_metadata_wrapper('commerce_line_item', $line_item);
     $product = commerce_product_load($line_item_wrapper->commerce_product->product_id->value());
-    $item = commerce_price_table_get_amount_qty($product, $line_item_wrapper->quantity->value());
+    $item = ($price_table == '') ? commerce_price_table_get_amount_qty($product, $line_item_wrapper->quantity->value())
+      : commerce_price_table_get_amount_qty($product, $line_item_wrapper->quantity->value(), $price_table);
     if (!empty($item)) {
       // Empty the price components to recalculate them.
       $line_item->commerce_unit_price[LANGUAGE_NONE][0]['data']['components'] = array();
@@ -48,3 +64,7 @@ function commerce_price_table_set_price($line_item) {
     }
   }
 }
+
+function commerce_price_table_set_price_and_table($line_item, $price_table) {
+  commerce_price_table_set_price($line_item, $price_table);
+}
\ No newline at end of file
