diff --git a/commerce_coupon.module b/commerce_coupon.module
index 9f10346..425eb68 100644
--- a/commerce_coupon.module
+++ b/commerce_coupon.module
@@ -1254,6 +1254,9 @@ function commerce_coupon_rollback_order_transactions($order, $save = FALSE) {
 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..5bde8e7 100644
--- a/commerce_coupon.rules.inc
+++ b/commerce_coupon.rules.inc
@@ -111,9 +111,8 @@ 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();
-  
-  if ($order_wrapper->commerce_coupons->value()) {
+  $has_coupons = isset($discount_wrapper->coupon_count) && $discount_wrapper->coupon_count->value();
+  if (isset($order_wrapper->commerce_coupons) && $order_wrapper->commerce_coupons->value()) {
     // 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) {
