diff --git a/commerce_coupon.module b/commerce_coupon.module
index d12f613..429cc5e 100644
--- a/commerce_coupon.module
+++ b/commerce_coupon.module
@@ -766,6 +766,18 @@ function commerce_coupon_log_save(CommerceCouponLog $log) {
 }

 /**
+ * Deletes a coupon log object to database.
+ *
+ * @param $log
+ *   Coupon log object to store to db.
+ * @return CommerceCouponLog
+ *   The stored object.
+ */
+function commerce_coupon_log_delete(CommerceCouponLog $log) {
+  return $log->delete();
+}
+
+/**
  * Create a new coupon log object. It is not persists in
  * the database per default.
  *
diff --git a/commerce_coupon.rules.inc b/commerce_coupon.rules.inc
index 201c79a..4256b3e 100644
--- a/commerce_coupon.rules.inc
+++ b/commerce_coupon.rules.inc
@@ -134,8 +134,22 @@ function commerce_coupon_rules_action_info() {
     'callbacks' => array(
       'execute' => 'commerce_coupon_action_create_coupon_line_item',
     ),
-      );
+  );

+  $actions['commerce_coupon_action_remove_coupon_line_item'] = array(
+    'label' => t('Remove coupon line item'),
+    'group' => t('Commerce Coupon'),
+    'parameter' => array(
+      'commerce_order' => array(
+        'type' => 'commerce_order',
+        'label' => t('commerce order'),
+      ),
+      'commerce_line_item' => array(
+        'type' => 'commerce_line_item',
+        'label' => t('commerce line item'),
+      ),
+    ),
+  );

   $actions['commerce_coupon_action_get_coupon_uses'] = array(
     'label' => t('Get the redemption number of a coupon'),
@@ -240,6 +254,21 @@ function commerce_coupon_action_create_coupon_line_item($commerce_coupon, $comme
   return array('commerce_coupon_line_item' => $line_item);
 }

+function commerce_coupon_action_remove_coupon_line_item($commerce_order, $commerce_line_item) {
+  if (!($commerce_order instanceof EntityMetadataWrapper)) {
+    $commerce_order = entity_metadata_wrapper('commerce_order', $commerce_order);
+  }
+
+  foreach ($commerce_order->commerce_line_items as $line_item_wrapper) {
+    $order_id = $line_item_wrapper->order_id->value();
+    if ($line_item_wrapper->type->value() == 'coupon') {
+      $coupon_id = $line_item_wrapper->commerce_coupon_reference->value();
+      $coupon_log = commerce_coupon_log_load_by_order_and_coupon($order_id, $coupon_id);
+      commerce_coupon_log_delete($coupon_log);
+      commerce_line_item_delete($line_item_wrapper->line_item_id->value());
+    }
+  }
+}

 function commerce_coupon_action_get_coupon_uses($commerce_coupon) {
   return array('number_of_uses' => commerce_coupon_get_number_of_uses($commerce_coupon->coupon_id));

