diff --git a/commerce_coupon.module b/commerce_coupon.module
index eb527e4..9dea8e1 100644
--- a/commerce_coupon.module
+++ b/commerce_coupon.module
@@ -1364,7 +1364,7 @@ function commerce_coupon_commerce_cart_order_refresh($order_wrapper) {
     // present, meaning an inline condition on the discount was not satisfied.
     // Free shipping discounts often do not apply immediately. For this reason,
     // do not remove coupon codes that exclusively grant free shipping.
-    if ($coupon && $coupon->type == 'discount_coupon' && !commerce_coupon_order_coupon_code_discounts($coupon->code, $order) && !_commerce_coupon_free_shipping_single_discount($coupon)) {
+    if ($coupon && $coupon->type == 'discount_coupon' && !commerce_coupon_order_coupon_code_discounts($coupon->code, $order) && !_commerce_coupon_single_discount('free_shipping', $coupon)) {
       // Remove invalid coupons.
       commerce_coupon_remove_coupon_from_order($order, $coupon, FALSE);
 
@@ -1378,23 +1378,23 @@ function commerce_coupon_commerce_cart_order_refresh($order_wrapper) {
 }
 
 /**
- * Determine whether a coupon grants free shipping.
+ * Determine whether a coupon grants a specific offer type.
  *
  * @param object $coupon
  *   A coupon entity.
  * @param bool $exclusive
  *   If set, this function will return TRUE only if the caller is requesting
- *   only coupons that exclusively grant free shipping.
+ *   only coupons that exclusively grant the specific offer type.
  *
  * @return object|bool|void
  *   Either a discount object or FALSE
  */
-function _commerce_coupon_free_shipping_single_discount($coupon, $exclusive = TRUE) {
+function _commerce_coupon_single_discount($type, $coupon, $exclusive = TRUE) {
   $coupon_wrapper = entity_metadata_wrapper('commerce_coupon', $coupon);
 
   if ($coupon->type == 'discount_coupon') {
     foreach ($coupon_wrapper->commerce_discount_reference as $discount_wrapper) {
-      if ($discount_wrapper->commerce_discount_offer->value() && $discount_wrapper->commerce_discount_offer->type->value() == 'free_shipping') {
+      if ($discount_wrapper->commerce_discount_offer->value() && $discount_wrapper->commerce_discount_offer->type->value() == $type) {
         $discount = $discount_wrapper->value();
       }
       elseif ($discount_wrapper->status->value() && $exclusive) {
diff --git a/includes/views/handlers/commerce_coupon_handler_field_discount_value_display.inc b/includes/views/handlers/commerce_coupon_handler_field_discount_value_display.inc
index 76dc0e2..956aef4 100644
--- a/includes/views/handlers/commerce_coupon_handler_field_discount_value_display.inc
+++ b/includes/views/handlers/commerce_coupon_handler_field_discount_value_display.inc
@@ -40,7 +40,7 @@ class commerce_coupon_handler_field_discount_value_display extends views_handler
       $output = '';
       // Make sure that if the coupon grants free shipping, those discounts gets
       // added too.
-      $free_shipping_discount = _commerce_coupon_free_shipping_single_discount($coupon, FALSE);
+      $free_shipping_discount = _commerce_coupon_single_discount('free_shipping', $coupon, FALSE);
       if ($free_shipping_discount) {
         $discounts[] = $free_shipping_discount;
       }
--
