diff --git a/uc_coupon.module b/uc_coupon.module
index 49143cc..1cf3668 100644
--- a/uc_coupon.module
+++ b/uc_coupon.module
@@ -815,7 +815,10 @@ function uc_coupon_validate($code) {
         $terms[] = $tid;
       }
 
-      if (isset($coupon->data['products']) && (isset($coupon->data['negate_products']) xor in_array($item->nid, $coupon->data['products']))) {
+      if (isset($coupon->data['negate_products']) && $coupon->data['negate_products'] == TRUE && !in_array($item->nid, $coupon->data['products'])) {
+        // Don't give a discount if the product has been excluded. 
+      }
+      else if (isset($coupon->data['products']) && in_array($item->nid, $coupon->data['products'])) {
         $applicable_total += $item->price * $item->qty;
         $applicable_qty += $item->qty;
       }
