diff --git src/bp-members/bp-members-functions.php src/bp-members/bp-members-functions.php
index d940b9a5f..1d353c40b 100644
--- src/bp-members/bp-members-functions.php
+++ src/bp-members/bp-members-functions.php
@@ -2975,13 +2975,14 @@ add_action( bp_get_member_type_tax_name() . '_add_form', 'bp_insert_member_types
  *                            false to replace. Default: false.
  * @return false|array $retval See {@see bp_set_object_terms()}.
  */
-function bp_set_member_type( $user_id, $member_type, $append = false ) {
+function bp_set_member_type( $user_id, $member_types, $append = false ) {
+
 	// Pass an empty $member_type to remove a user's type.
-	if ( ! empty( $member_type ) && ! bp_get_member_type_object( $member_type ) ) {
+	if ( empty( $member_types ) && ! is_array( $member_types ) ) {
 		return false;
 	}

-	$retval = bp_set_object_terms( $user_id, $member_type, bp_get_member_type_tax_name(), $append );
+	$retval = bp_set_object_terms( $user_id, $member_types, bp_get_member_type_tax_name(), $append );

 	// Bust the cache if the type has been updated.
 	if ( ! is_wp_error( $retval ) ) {
@@ -2996,7 +2997,7 @@ function bp_set_member_type( $user_id, $member_type, $append = false ) {
 		 * @param string $member_type Member type.
 		 * @param bool   $append      Whether the type is being appended to existing types.
 		 */
-		do_action( 'bp_set_member_type', $user_id, $member_type, $append );
+		do_action( 'bp_set_member_type', $user_id, $member_types, $append );
 	}

 	return $retval;
diff --git src/bp-members/classes/class-bp-members-admin.php src/bp-members/classes/class-bp-members-admin.php
index d344b5d7c..d58b4c891 100644
--- src/bp-members/classes/class-bp-members-admin.php
+++ src/bp-members/classes/class-bp-members-admin.php
@@ -1286,21 +1286,31 @@ class BP_Members_Admin {
 			return;
 		}

-		$types = bp_get_member_types( array(), 'objects' );
-		$current_type = bp_get_member_type( $user->ID );
+		$types           = bp_get_member_types( array(), 'object' );
+		$current_types   = bp_get_member_type( $user->ID, false );
+		$selected		 = '';
 		?>
-
-		<label for="bp-members-profile-member-type" class="screen-reader-text"><?php
+		<label for="bp-members-profile-member-type" class="screen-reader-text">
+			<?php
 			/* translators: accessibility text */
 			esc_html_e( 'Select member type', 'buddypress' );
-		?></label>
-		<select name="bp-members-profile-member-type" id="bp-members-profile-member-type">
-			<option value="" <?php selected( '', $current_type ); ?>><?php
-				/* translators: no option picked in select box */
-				esc_attr_e( '----', 'buddypress' );
-			?></option>
+			?>
+		</label>
+
+		<select name="bp-members-profile-member-type[]" id="bp-members-profile-member-type" multiple="multiple">
+			<option value=""><?php
+
+					/* translators: no option picked in select box */
+					esc_attr_e( '----', 'buddypress' );
+					?>
+			</option>
 			<?php foreach ( $types as $type ) : ?>
-				<option value="<?php echo esc_attr( $type->name ) ?>" <?php selected( $type->name, $current_type ) ?>><?php echo esc_html( $type->labels['singular_name'] ) ?></option>
+				<?php if( ! empty( $current_types ) && in_array( $type->name, $current_types ) ){
+					$selected = 'selected';
+				}else {
+						$selected = '';
+				}?>
+				<option value="<?php echo esc_attr( $type->name ); ?>" <?php echo esc_attr( $selected );?>><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
 			<?php endforeach; ?>
 		</select>

@@ -1309,6 +1319,7 @@ class BP_Members_Admin {
 		wp_nonce_field( 'bp-member-type-change-' . $user->ID, 'bp-member-type-nonce' );
 	}

+
 	/**
 	 * Process changes from the Member Type metabox.
 	 *
@@ -1320,6 +1331,7 @@ class BP_Members_Admin {
 		}

 		$user_id = $this->get_user_id();
+		$member_types = array();

 		check_admin_referer( 'bp-member-type-change-' . $user_id, 'bp-member-type-nonce' );

@@ -1328,17 +1340,23 @@ class BP_Members_Admin {
 			return;
 		}

-		// Member type string must either reference a valid member type, or be empty.
-		$member_type = stripslashes( $_POST['bp-members-profile-member-type'] );
-		if ( ! empty( $member_type ) && ! bp_get_member_type_object( $member_type ) ) {
-			return;
+
+		foreach ( $_POST['bp-members-profile-member-type'] as $key => $types ) {
+			// Member type string must either reference a valid member type, or be empty.
+			$member_type = stripslashes( $types );
+			if ( ! empty( $member_type ) && ! bp_get_member_type_object( $member_type ) ) {
+				return;
+			}
+
+			$member_types[$key] = $member_type;
 		}

+
 		/*
 		 * If an invalid member type is passed, someone's doing something
 		 * fishy with the POST request, so we can fail silently.
 		 */
-		if ( bp_set_member_type( $user_id, $member_type ) ) {
+		if ( bp_set_member_type( $user_id, $member_types ) ) {
 			// @todo Success messages can't be posted because other stuff happens on the page load.
 		}
 	}
@@ -2319,6 +2337,7 @@ class BP_Members_Admin {

 		// `$which` is only passed in WordPress 4.6+. Avoid duplicating controls in earlier versions.
 		static $displayed = false;
+		$counter = 0;
 		if ( version_compare( bp_get_major_wp_version(), '4.6', '<' ) && $displayed ) {
 			return;
 		}
@@ -2326,24 +2345,29 @@ class BP_Members_Admin {

 		$id_name = 'bottom' === $which ? 'bp_change_type2' : 'bp_change_type';

-		$types = bp_get_member_types( array(), 'objects' ); ?>
+		$types = bp_get_member_types( array(), 'objects' );
+		?>

-		<label class="screen-reader-text" for="<?php echo $id_name; ?>"><?php _e( 'Change member type to&hellip;', 'buddypress' ) ?></label>
-		<select name="<?php echo $id_name; ?>" id="<?php echo $id_name; ?>" style="display:inline-block;float:none;">
-			<option value=""><?php _e( 'Change member type to&hellip;', 'buddypress' ) ?></option>
+	<label class="screen-reader-text" for="<?php echo $id_name; ?>"><?php _e( 'Change member type to&hellip;', 'buddypress' ); ?></label>

-			<?php foreach( $types as $type ) : ?>
+	<select name="<?php echo $id_name; ?>" id="<?php echo $id_name; ?>" style="display:inline-block;float:none;">
+		<option value=""><?php _e( 'Change member type to&hellip;', 'buddypress' ); ?></option>

-				<option value="<?php echo esc_attr( $type->name ); ?>"><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
+			<?php foreach ( $types as $type ) : ?>

-			<?php endforeach; ?>
+			<option value="<?php echo esc_attr( $type->name ); ?>"><?php echo esc_html( $type->labels['singular_name'] ); ?></option>
+
+		<?php endforeach; ?>
+
+		<option value="remove_member_type"><?php _e( 'No Member Type', 'buddypress' ); ?></option>
+
+	</select>

-			<option value="remove_member_type"><?php _e( 'No Member Type', 'buddypress' ) ?></option>

-		</select>
 		<?php
 		wp_nonce_field( 'bp-bulk-users-change-type-' . bp_loggedin_user_id(), 'bp-bulk-users-change-type-nonce' );
 		submit_button( __( 'Change', 'buddypress' ), 'button', 'bp_change_member_type', false );
+
 	}

 	/**
@@ -2466,7 +2490,7 @@ class BP_Members_Admin {
 	 *
 	 * @param string $retval
 	 * @param string $column_name
-	 * @param int $user_id
+	 * @param int    $user_id
 	 *
 	 * @return string Member type as a link to filter all users.
 	 */
@@ -2477,15 +2501,34 @@ class BP_Members_Admin {
 		}

 		// Get the member type.
-		$type = bp_get_member_type( $user_id );
+		$types = bp_get_member_type( $user_id, false );

-		// Output the
-		if ( $type_obj = bp_get_member_type_object( $type ) ) {
-			$url = add_query_arg( array( 'bp-member-type' => urlencode( $type ) ) );
-			$retval = '<a href="' . esc_url( $url ) . '">' . esc_html( $type_obj->labels['singular_name'] ) . '</a>';
-		}
+		if( ! empty( $types ) ){

-		return $retval;
+			$member_types = '';
+
+			if ( count( $types ) > 5 ) {
+				$types = array_slice( $types, 0, 5 );
+			}
+
+			foreach ( $types as $key => $type ) {
+				// Output the
+				if ( $type_obj = bp_get_member_type_object( $type ) ) {
+
+					if ( ! empty( $member_types ) ) {
+						$member_types .= ', ';
+					}
+
+					$url   = add_query_arg( array( 'bp-member-type' => urlencode( $type ) ) );
+					$member_types .= '<a href="' . esc_url( $url ) . '">' . esc_html( $type_obj->labels['singular_name'] ) . '</a>';
+				}
+			}
+
+			if ( ! empty( $member_types ) ) {
+				$retval .= '<br />' . $member_types;
+			}
+			return $retval;
+		}
 	}

 	/**
