diff --git a/commerce_registration.module b/commerce_registration.module
index d803b24..6659e4e 100755
--- a/commerce_registration.module
+++ b/commerce_registration.module
@@ -308,7 +308,7 @@ function commerce_registration_form_alter(&$form, &$form_state, $form_id) {
             $total_regs++;
             $settings = registration_entity_settings('commerce_product', $product_id);
             if (registration_get_entity_registration_type('commerce_product', $product) && !empty($settings)) {
-              if (registration_status('commerce_product', $product_id, TRUE) == 1) {
+              if (registration_status('commerce_product', $product_id, TRUE) && registration_register_page_access('commerce_product', $product)) {
                 $fieldsettings = field_extra_fields_get_display('commerce_product', $product->type, 'default');
                 $showavail = isset($fieldsettings['registration_available'])
                   && isset($fieldsettings['registration_available']['visible'])
@@ -352,7 +352,8 @@ function commerce_registration_form_alter(&$form, &$form_state, $form_id) {
         $settings = registration_entity_settings('commerce_product', $form['product_id']['#value']);
         if (commerce_registration_product_has_registration_field($product->product_id)
             && !empty($settings)
-            && registration_status('commerce_product', $form['product_id']['#value'], TRUE)) {
+            && registration_status('commerce_product', $form['product_id']['#value'], TRUE)
+            && registration_register_page_access('commerce_product', $product)) {
           $fieldsettings = field_extra_fields_get_display('commerce_product', $product->type, 'default');
           $showavail = isset($fieldsettings['registration_available'])
             && isset($fieldsettings['registration_available']['visible'])
@@ -507,8 +508,10 @@ function commerce_registration_node_settings_form_submit($form, $form_state) {
  */
 function commerce_registration_add_to_cart_validate($form, &$form_state) {
   $product_id = $form_state['values']['product_id'];
+  $product = commerce_product_load($product_id);
   if (commerce_registration_product_has_registration_field($product_id)
-      && !registration_status('commerce_product', $product_id, TRUE)) {
+    && (!registration_status('commerce_product', $product_id, TRUE) ||
+      !registration_register_page_access('commerce_product', $product))) {
     form_set_error('product_id',
       t('This product is not available for registration at this time.'));
     return FALSE;
diff --git a/includes/commerce_registration.checkout_pane.inc b/includes/commerce_registration.checkout_pane.inc
index 4eec85f..c2cb1b6 100755
--- a/includes/commerce_registration.checkout_pane.inc
+++ b/includes/commerce_registration.checkout_pane.inc
@@ -73,7 +73,7 @@ function commerce_registration_information_checkout_form($form, &$form_state, $c
         // -------------------------------------------------------------------------
         $mail = $entity->mail;
         $options = registration_access_people($entity);
-        if (count($options) == 0) {
+        if ( (count($options) == 0) || !registration_register_page_access('commerce_product', $line_item_wrapper->commerce_product->value()))) {
           $form[$prodkey][$prodkey . '-reg-' . $i]['no_reg'] = array(
             '#markup' => t('You do not have permission to register for this item.'),
           );
@@ -163,7 +163,7 @@ function commerce_registration_information_checkout_form_validate($form, &$form_
       $self_products = array();
       for ($i = 0; $i < $quantity; $i++) {
         $prodkey = 'prod-' . $product->sku->value();
-        // 
+        //
         // $tmp_form_state['values'] = $form_state['values']['registration_information'][$prodkey][$prodkey . '-reg-' . $i;
         // Delete the following when we use ER's validation handler.
         if (isset($form_state['values']['registration_information'][$prodkey][$prodkey . '-reg-' . $i]['no_reg_permission'])) {
