diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java
index e91adb2..d7b8d6e 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/user/DefaultEntitlementUserApi.java
@@ -247,6 +247,11 @@ public class DefaultEntitlementUserApi implements EntitlementUserApi {
continue;
}
+ // If ADDON is cancelled, skip
+ if (cur.getState() == SubscriptionState.CANCELLED) {
+ continue;
+ }
+
final DryRunChangeReason reason;
// If baseProductName is null, it's a cancellation dry-run. In this case, return all addons, so they are cancelled
if (baseProductName != null && addonUtils.isAddonIncludedFromProdName(baseProductName, requestedDate, cur.getCurrentPlan())) {
diff --git a/overdue/src/main/java/com/ning/billing/overdue/calculator/BillingStateCalculatorBundle.java b/overdue/src/main/java/com/ning/billing/overdue/calculator/BillingStateCalculatorBundle.java
index d76cf78..4934889 100644
--- a/overdue/src/main/java/com/ning/billing/overdue/calculator/BillingStateCalculatorBundle.java
+++ b/overdue/src/main/java/com/ning/billing/overdue/calculator/BillingStateCalculatorBundle.java
@@ -85,8 +85,10 @@ public class BillingStateCalculatorBundle extends BillingStateCalculator<Subscri
final BillingPeriod basePlanBillingPeriod;
final PriceList basePlanPriceList;
final PhaseType basePlanPhaseType;
- if (basePlan.getCurrentPlan() == null) {
- // The subscription has been cancelled since
+ //
+ // basePlan is null for standalone subscriptions
+ // basePlan.getCurrentPlan() is null if basePlan has been cancelled
+ if (basePlan == null || basePlan.getCurrentPlan() == null) {
basePlanProduct = null;
basePlanBillingPeriod = null;
basePlanPriceList = null;