diff --git a/commerce_coupon.module b/commerce_coupon.module
index cc20bb9..70aa222 100644
--- a/commerce_coupon.module
+++ b/commerce_coupon.module
@@ -1214,7 +1214,9 @@ function commerce_coupon_module_implements_alter(&$implementations, $hook) {
  */
 function commerce_coupon_commerce_cart_order_refresh($order_wrapper) {
   $order = $order_wrapper->value();
-
+  if (!isset($order_wrapper->commerce_coupons) || !$order_wrapper->commerce_coupons->value()) {
+    return;
+  }
   foreach ($order_wrapper->commerce_coupons->value() as $coupon) {
     // Invalidate coupons that exist on the order without their discount
     // present, meaning an inline condition on the discount was not satisfied.
diff --git a/commerce_coupon.rules.inc b/commerce_coupon.rules.inc
index c987f66..c3363ea 100644
--- a/commerce_coupon.rules.inc
+++ b/commerce_coupon.rules.inc
@@ -111,9 +111,9 @@ function commerce_coupon_discount_coupon_codes_exist_on_order($order_wrapper, $d
   }
 
   // Determine if this discount uses coupons.
-  $has_coupons = $discount_wrapper->coupon_count->value();
+  $has_coupons = isset($order_wrapper->commerce_coupons) && $discount_wrapper->coupon_count->value();
 
-  if ($order_wrapper->commerce_coupons->value()) {
+  if ($has_coupons) {
     // At least one of the coupon codes granting this discount must be 1) active
     // and 2) pass its inline conditions.
     foreach ($order_wrapper->commerce_coupons as $coupon_wrapper) {
