diff --git src/bp-groups/bp-groups-loader.php src/bp-groups/bp-groups-loader.php
index 58addca..21348fb 100644
--- src/bp-groups/bp-groups-loader.php
+++ src/bp-groups/bp-groups-loader.php
@@ -244,6 +244,9 @@ class BP_Groups_Component extends BP_Component {
 				$this->current_group->user_has_access = true;
 			}
 
+			// Check once if the current group has a custom front template
+			$this->current_group->front_template = bp_groups_get_group_front_template( $this->current_group );
+
 		// Set current_group to 0 to prevent debug errors
 		} else {
 			$this->current_group = 0;
@@ -356,6 +359,11 @@ class BP_Groups_Component extends BP_Component {
 		 */
 		$this->default_extension = apply_filters( 'bp_groups_default_extension', defined( 'BP_GROUPS_DEFAULT_EXTENSION' ) ? BP_GROUPS_DEFAULT_EXTENSION : 'home' );
 
+		// If the activity component is not active and the current group has no custom front, members are displayed in the home nav
+		if ( 'members' === $this->default_extension && ! bp_is_active( 'activity' ) && ! $this->current_group->front_template ) {
+			$this->default_extension = 'home';
+		}
+
 		if ( !bp_current_action() ) {
 			buddypress()->current_action = $this->default_extension;
 		}
@@ -511,17 +519,40 @@ class BP_Groups_Component extends BP_Component {
 				);
 			}
 
-			$sub_nav[] = array(
-				'name'            => sprintf( _x( 'Members <span>%s</span>', 'My Group screen nav', 'buddypress' ), number_format( $this->current_group->total_member_count ) ),
-				'slug'            => 'members',
-				'parent_url'      => $group_link,
-				'parent_slug'     => $this->current_group->slug,
-				'screen_function' => 'groups_screen_group_members',
-				'position'        => 60,
-				'user_has_access' => $this->current_group->user_has_access,
-				'item_css_id'     => 'members',
-				'no_access_url'   => $group_link,
-			);
+			if ( $this->current_group->front_template || bp_is_active( 'activity' ) ) {
+				/**
+				 * Only add the members subnav if it's not the home's nav
+				 */
+				$sub_nav[] = array(
+					'name'            => sprintf( _x( 'Members <span>%s</span>', 'My Group screen nav', 'buddypress' ), number_format( $this->current_group->total_member_count ) ),
+					'slug'            => 'members',
+					'parent_url'      => $group_link,
+					'parent_slug'     => $this->current_group->slug,
+					'screen_function' => 'groups_screen_group_members',
+					'position'        => 60,
+					'user_has_access' => $this->current_group->user_has_access,
+					'item_css_id'     => 'members',
+					'no_access_url'   => $group_link,
+				);
+
+				/**
+				 * If the theme is using a custom front, create
+				 * an activity nav
+				 */
+				if ( $this->current_group->front_template && bp_is_active( 'activity' ) ) {
+					$sub_nav[] = array(
+						'name'            => _x( 'Activity', 'My Group screen nav', 'buddypress' ),
+						'slug'            => 'activity',
+						'parent_url'      => $group_link,
+						'parent_slug'     => $this->current_group->slug,
+						'screen_function' => 'groups_screen_group_activity',
+						'position'        => 50,
+						'user_has_access' => $this->current_group->user_has_access,
+						'item_css_id'     => 'activity',
+						'no_access_url'   => $group_link,
+					);
+				}
+			}
 
 			if ( bp_is_active( 'friends' ) && bp_groups_user_can_send_invites() ) {
 				$sub_nav[] = array(
diff --git src/bp-groups/bp-groups-screens.php src/bp-groups/bp-groups-screens.php
index a21fcb5..82c6ad6 100644
--- src/bp-groups/bp-groups-screens.php
+++ src/bp-groups/bp-groups-screens.php
@@ -742,6 +742,34 @@ function groups_screen_group_request_membership() {
 }
 
 /**
+ * Handle the loading of a single group's activity.
+ *
+ * @since BuddyPress (?)
+ */
+function groups_screen_group_activity() {
+
+	if ( ! bp_is_single_item() ) {
+		return false;
+	}
+
+	/**
+	 * Fires before the loading of a single group's activity page.
+	 *
+	 * @since BuddyPress (?)
+	 */
+	do_action( 'groups_screen_group_activity' );
+
+	/**
+	 * Filters the template to load for a single group's activity page.
+	 *
+	 * @since BuddyPress (?)
+	 *
+	 * @param string $value Path to a single group's template to load.
+	 */
+	bp_core_load_template( apply_filters( 'groups_screen_group_activity', 'groups/single/activity' ) );
+}
+
+/**
  * Handle the display of a single group activity item.
  */
 function groups_screen_group_activity_permalink() {
diff --git src/bp-groups/bp-groups-template.php src/bp-groups/bp-groups-template.php
index e6921a0..a238e6c 100644
--- src/bp-groups/bp-groups-template.php
+++ src/bp-groups/bp-groups-template.php
@@ -3752,8 +3752,9 @@ function bp_group_has_members( $args = '' ) {
 	global $members_template;
 
 	$exclude_admins_mods = 1;
+	$current_group = groups_get_current_group();
 
-	if ( bp_is_group_members() ) {
+	if ( bp_is_group_members() || ( empty( $current_group->front_template ) && ! bp_is_active( 'activity' ) && bp_is_group_home() ) ) {
 		$exclude_admins_mods = 0;
 	}
 
@@ -4151,6 +4152,65 @@ function bp_group_member_admin_pagination() {
 	}
 
 /**
+ * Load the appropriate current group's home page
+ *
+ * @since BuddyPress (?)
+ */
+function bp_groups_load_group_front_template( $require_once = false, $group = null ) {
+	$located = bp_groups_get_group_front_template( $group );
+
+	if ( false !== $located ) {
+		$slug = str_replace( '.php', '', $located );
+
+		/**
+		 * Let plugins adding an action to bp_get_template_part get it from here
+		 *
+		 * @param string $slug Template part slug requested.
+		 * @param string $name Template part name requested.
+		 */
+		do_action( 'get_template_part_' . $slug, $slug, false );
+
+		load_template( $located, $require_once );
+
+	} else if ( bp_is_active( 'activity' ) ) {
+		bp_get_template_part( 'groups/single/activity' );
+
+	} else if ( bp_is_active( 'members'  ) ) {
+		bp_groups_members_template_part();
+	}
+
+	return $located;
+}
+
+/**
+ * Locate a custom group front template if it exsists
+ *
+ * @since BuddyPress (?)
+ */
+function bp_groups_get_group_front_template( $group = null ) {
+	if ( ! is_a( $group, 'BP_Groups_Group' ) ) {
+		$group = groups_get_current_group();
+	}
+
+	if ( ! isset( $group->id ) ) {
+		return false;
+	}
+
+	if ( isset( $group->front_template ) ) {
+		return $group->front_template;
+	}
+
+	$template_names = apply_filters( 'bp_groups_get_front_template', array(
+		'groups/single/front-id-'     . sanitize_file_name( $group->id )     . '.php',
+		'groups/single/front-slug-'   . sanitize_file_name( $group->slug )   . '.php',
+		'groups/single/front-status-' . sanitize_file_name( $group->status ) . '.php',
+		'groups/single/front.php'
+	) );
+
+	return bp_locate_template( $template_names, false, true );
+}
+
+/**
  * Output the Group members template
  *
  * @since BuddyPress (2.0.0)
diff --git src/bp-templates/bp-legacy/buddypress/activity/post-form.php src/bp-templates/bp-legacy/buddypress/activity/post-form.php
index 12023a8..4ea132c 100644
--- src/bp-templates/bp-legacy/buddypress/activity/post-form.php
+++ src/bp-templates/bp-legacy/buddypress/activity/post-form.php
@@ -65,7 +65,7 @@
 				</div>
 				<input type="hidden" id="whats-new-post-object" name="whats-new-post-object" value="groups" />
 
-			<?php elseif ( bp_is_group_home() ) : ?>
+			<?php elseif ( bp_is_group_home() || bp_is_group_activity() ) : ?>
 
 				<input type="hidden" id="whats-new-post-object" name="whats-new-post-object" value="groups" />
 				<input type="hidden" id="whats-new-post-in" name="whats-new-post-in" value="<?php bp_group_id(); ?>" />
diff --git src/bp-templates/bp-legacy/buddypress/groups/single/home.php src/bp-templates/bp-legacy/buddypress/groups/single/home.php
index f22e339..7139418 100644
--- src/bp-templates/bp-legacy/buddypress/groups/single/home.php
+++ src/bp-templates/bp-legacy/buddypress/groups/single/home.php
@@ -38,17 +38,8 @@
 
 				if ( bp_group_is_visible() ) {
 
-					// Use custom front if one exists
-					$custom_front = bp_locate_template( array( 'groups/single/front.php' ), false, true );
-					if     ( ! empty( $custom_front   ) ) : load_template( $custom_front, true );
-
-					// Default to activity
-					elseif ( bp_is_active( 'activity' ) ) : bp_get_template_part( 'groups/single/activity' );
-
-					// Otherwise show members
-					elseif ( bp_is_active( 'members'  ) ) : bp_groups_members_template_part();
-
-					endif;
+					// Load appropriate front template
+					bp_groups_load_group_front_template();
 
 				} else {
 
