Index: bp-groups/bp-groups-classes.php
===================================================================
--- bp-groups/bp-groups-classes.php
+++ bp-groups/bp-groups-classes.php
@@ -161,7 +161,7 @@ class BP_Groups_Group {
 	 */
 	public function __construct( $id = null, $args = array() ) {
 		$this->args = wp_parse_args( $args, array(
-			'populate_extras' => true,
+			'populate_extras' => false,
 		) );
 
 		if ( !empty( $id ) ) {
Index: bp-groups/bp-groups-functions.php
===================================================================
--- bp-groups/bp-groups-functions.php
+++ bp-groups/bp-groups-functions.php
@@ -43,7 +43,7 @@ function groups_get_group( $args = '' ) {
 	$r = wp_parse_args( $args, array(
 		'group_id'          => false,
 		'load_users'        => false,
-		'populate_extras'   => true,
+		'populate_extras'   => false,
 	) );
 
 	$group_args = array(
Index: bp-groups/bp-groups-loader.php
===================================================================
--- bp-groups/bp-groups-loader.php
+++ bp-groups/bp-groups-loader.php
@@ -162,7 +162,16 @@ class BP_Groups_Component extends BP_Component {
 
 			$bp->is_single_item  = true;
 			$current_group_class = apply_filters( 'bp_groups_current_group_class', 'BP_Groups_Group' );
-			$this->current_group = apply_filters( 'bp_groups_current_group_object', new $current_group_class( $group_id ) );
+
+			if ( $current_group_class == 'BP_Groups_Group' ) {
+				$this->current_group = groups_get_group( array(
+					'group_id'        => $group_id,
+					'populate_extras' => true,
+				) );
+
+			} else {
+				$this->current_group = apply_filters( 'bp_groups_current_group_object', new $current_group_class( $group_id ) );
+			}
 
 			// When in a single group, the first action is bumped down one because of the
 			// group name, so we need to adjust this and set the group name to current_item.
Index: bp-groups/bp-groups-template.php
===================================================================
--- bp-groups/bp-groups-template.php
+++ bp-groups/bp-groups-template.php
@@ -160,7 +160,7 @@ class BP_Groups_Template {
 			$this->groups = groups_get_invites_for_user( $user_id, $this->pag_num, $this->pag_page, $exclude );
 		} else if ( 'single-group' == $type ) {
 			$group           = new stdClass;
-			$group->group_id = BP_Groups_Group::get_id_from_slug( $slug );
+			$group->group_id = bp_get_current_group_id();
 			$this->groups    = array( $group );
 		} else {
 			$this->groups = groups_get_groups( array(
@@ -261,7 +261,7 @@ class BP_Groups_Template {
 		$this->group       = $this->next_group();
 
 		if ( $this->single_group )
-			$this->group = groups_get_group( array( 'group_id' => $this->group->group_id ) );
+			$this->group = groups_get_current_group();
 
 		if ( 0 == $this->current_group ) // loop has just started
 			do_action('group_loop_start');
Index: tests/testcases/groups/functions.php
===================================================================
--- tests/testcases/groups/functions.php
+++ tests/testcases/groups/functions.php
@@ -562,11 +562,11 @@ Bar!';
 		$old_user = get_current_user_id();
 		$this->set_current_user( $u1 );
 
-		$group1 = groups_get_group( array( 'group_id' => $g, ) );
+		$group1 = groups_get_group( array( 'group_id' => $g, 'populate_extras' => true ) );
 
 		$this->set_current_user( $u2 );
 
-		$group2 = groups_get_group( array( 'group_id' => $g, ) );
+		$group2 = groups_get_group( array( 'group_id' => $g, 'populate_extras' => true ) );
 
 		$this->assertNotEquals( $group1, $group2 );
 
