Index: modules/og_subgroups_prop/og_subgroups_prop.module
===================================================================
--- modules/og_subgroups_prop/og_subgroups_prop.module	(revision 3760)
+++ modules/og_subgroups_prop/og_subgroups_prop.module	(working copy)
@@ -96,7 +96,7 @@
     default:
       return FALSE;
   }
-  
+
   // Load the group
   $group = node_load($gid);
   
@@ -123,7 +123,7 @@
   // Make sure user isn't already a member
   if (!isset($user->og_groups[$group->nid])) {
     // Make sure the group isn't invite-only or closed
-    if ($group->og_selective != OG_INVITE_ONLY && $group->og_selective != OG_CLOSED) {
+    if (($group->og_selective != OG_INVITE_ONLY && $group->og_selective != OG_CLOSED) || og_is_group_admin($group)) {
       // Determine if the membership should be active or not
-      $is_active = ($group->og_selective == OG_OPEN) ? 1 : 0;
+      $is_active = ($group->og_selective == OG_OPEN || og_is_group_admin($group)) ? 1 : 0;
       // Save the user's subscription to the group
@@ -176,7 +176,7 @@
   }
   
   // If this group is closed, and the user isn't an admin, they can't leave
-  if ($group->og_selective == OG_CLOSED && !og_is_group_admin($group, $user)) {
+  if (($group->og_selective == OG_CLOSED && !og_is_group_admin($group, $user)) && !og_is_group_admin($group)) {
     return FALSE;
   }
   
