diff --git a/commons_groups.module b/commons_groups.module
index 03ed106..60ca2c1 100644
--- a/commons_groups.module
+++ b/commons_groups.module
@@ -16,6 +16,47 @@ function commons_groups_ctools_plugin_directory($module, $plugin) {
 }
 
 /**
+ * Implements hook_modules_enabled().
+ *
+ * Make sure the og access fields exist when og_access is enabled.
+ */
+function commons_groups_modules_enabled($modules) {
+  if (!in_array('og_access', $modules)) {
+    return;
+  }
+
+  // Create access field on all group types.
+  foreach (og_get_all_group_bundle() as $entity_type => $bundles) {
+    foreach (array_keys($bundles) as $bundle) {
+      og_create_field(OG_ACCESS_FIELD, $entity_type, $bundle);
+    }
+  }
+
+  // Create access field on all group content node types.
+  $bundles = og_get_all_group_content_bundle();
+  if (empty($bundles['node'])) {
+    return;
+  }
+  foreach (array_keys($bundles['node']) as $bundle) {
+    og_create_field(OG_CONTENT_ACCESS_FIELD, 'node', $bundle);
+  }
+}
+
+/**
+ * Implements hook_field_create_instance().
+ *
+ * Attach the og content access field to new content types when og_access is
+ * enabled.
+ */
+function commons_groups_field_create_instance($instance) {
+  if (!module_exists('og_access') || $instance['entity_type'] != 'node' || !og_is_group_audience_field($instance['field_name'])) {
+    return;
+  }
+
+  og_create_field(OG_CONTENT_ACCESS_FIELD, 'node', $instance['bundle']);
+}
+
+/**
  * Implements hook_entity_view().
  */
 function commons_groups_entity_view($entity, $type, $view_mode, $langcode) {
@@ -173,7 +214,6 @@ function commons_groups_block_view() {
 
 /**
  * Implements hook_features_pipe_alter().
- *
  */
 function commons_groups_features_pipe_alter(&$pipe, $data, $export) {
   // Prevent Commons Groups related fields from being piped in features
@@ -375,8 +415,9 @@ function commons_groups_og_user_access_alter(&$perm, $context) {
     return;
   }
 
+
   $wrapper = entity_metadata_wrapper($group_type, $group);
-  if ($wrapper->field_og_subscribe_settings->value() == 'join') {
+  if ($wrapper->field_og_subscribe_settings->value() == 'anyone') {
     // Group is public.
     return;
   }
