Index: src/bp-groups/bp-groups-functions.php
===================================================================
--- src/bp-groups/bp-groups-functions.php
+++ src/bp-groups/bp-groups-functions.php
@@ -1522,7 +1522,7 @@
 	$group = groups_get_group( $group_id );
 
 	for ( $i = 0, $count = count( $invited_users ); $i < $count; ++$i ) {
-		$member = new BP_Groups_Member( $invited_users[$i], $group_id );
+		$member = new BP_Groups_Member( $invited_users[$i], $group_id, false, true, array( 'populate_user_object' => false ) );
 
 		// Send the actual invite.
 		groups_notification_group_invites( $group, $member, $user_id );
@@ -1625,7 +1625,7 @@
 	if ( ! bp_is_item_admin() )
 		return false;
 
-	$member = new BP_Groups_Member( $user_id, $group_id );
+	$member = new BP_Groups_Member( $user_id, $group_id, false, true, array( 'populate_user_object' => false ) );
 
 	// Don't use this action. It's deprecated as of BuddyPress 1.6.
 	do_action( 'groups_premote_member', $group_id, $user_id, $status );
Index: src/bp-groups/classes/class-bp-groups-member.php
===================================================================
--- src/bp-groups/classes/class-bp-groups-member.php
+++ src/bp-groups/classes/class-bp-groups-member.php
@@ -135,6 +135,7 @@
 	 * Constructor method.
 	 *
 	 * @since 1.6.0
+	 * @since 2.8.0 Introduce $options as a parameter.
 	 *
 	 * @param int      $user_id  Optional. Along with $group_id, can be used to
 	 *                           look up a membership.
@@ -143,25 +144,36 @@
 	 * @param int|bool $id       Optional. The unique ID of the membership object.
 	 * @param bool     $populate Whether to populate the properties of the
 	 *                           located membership. Default: true.
+	 * @param array    $options  {
+	 *      An array of additional options.
+	 *      @var bool $populate_user_object If $populate is set to true, whether we should do an additional
+	 *                                      query for the BP_Core_User object in the populate() method. Default:
+	 *                                      true.
+	 * }
 	 */
-	public function __construct( $user_id = 0, $group_id = 0, $id = false, $populate = true ) {
+	public function __construct( $user_id = 0, $group_id = 0, $id = false, $populate = true, $options = array() ) {
+		// Set options.
+		$populate_user = true;
+		if ( isset( $options['populate_user_object'] ) && false === $options['populate_user_object'] ) {
+			$populate_user = false;
+		}
 
 		// User and group are not empty, and ID is.
-		if ( !empty( $user_id ) && !empty( $group_id ) && empty( $id ) ) {
+		if ( ! empty( $user_id ) && ! empty( $group_id ) && empty( $id ) ) {
 			$this->user_id  = $user_id;
 			$this->group_id = $group_id;
 
-			if ( !empty( $populate ) ) {
-				$this->populate();
+			if ( ! empty( $populate ) ) {
+				$this->populate( $populate_user );
 			}
 		}
 
 		// ID is not empty.
-		if ( !empty( $id ) ) {
+		if ( ! empty( $id ) ) {
 			$this->id = $id;
 
-			if ( !empty( $populate ) ) {
-				$this->populate();
+			if ( ! empty( $populate ) ) {
+				$this->populate( $populate_user );
 			}
 		}
 	}
@@ -170,8 +182,11 @@
 	 * Populate the object's properties.
 	 *
 	 * @since 1.6.0
+	 * @since 2.8.0 Introduce $populate_user parameter.
+	 *
+	 * @param bool $populate_user Whether we should query for the BP_Core_User object. Default: true.
 	 */
-	public function populate() {
+	public function populate( $populate_user = true ) {
 		global $wpdb;
 
 		$bp = buddypress();
@@ -198,7 +213,9 @@
 			$this->comments      = $member->comments;
 			$this->invite_sent   = (int) $member->invite_sent;
 
-			$this->user = new BP_Core_User( $this->user_id );
+			if ( $populate_user ) {
+				$this->user = new BP_Core_User( $this->user_id );
+			}
 		}
 	}
 
