diff --git a/recurly.module b/recurly.module
index a2493d1..0691302 100644
--- a/recurly.module
+++ b/recurly.module
@@ -783,10 +783,17 @@
 function recurly_subscription_page_access($entity_type, $entity, $operation) {
   $entity_info = entity_get_info();
   $access_callback = $entity_info[$entity_type]['access callback'];
-  $update_access = $access_callback('update', $entity, NULL, $entity_type);
+  list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
+
+  // Check to make sure the bundle type (if any) matches.
+  $recurly_bundle = variable_get('recurly_bundle_' . $entity_type, 'user');
+  if ($bundle && $bundle !== $recurly_bundle) {
+    return FALSE;
+  }
 
   // If the user does not have access to update this entity, they do not have
   // the ability to update the subscription.
+  $update_access = $access_callback('update', $entity, NULL, $entity_type);
   if (!$update_access || !user_access('manage recurly subscription')) {
     return FALSE;
   }
@@ -794,7 +801,6 @@
   // If the operation is anything but subscribe, do not allow access to the page
   // because it does not make logical sense to show invoices/billing/etc. for
   // an object that does not have a subscription at all.
-  list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
   $local_account = recurly_account_load(array('entity_type' => $entity_type, 'entity_id' => $id), TRUE);
   $subscription_plans = variable_get('recurly_subscription_plans', array());
   if ($operation === 'main') {