diff --git src/bp-groups/bp-groups-functions.php src/bp-groups/bp-groups-functions.php
index 9cadd37..7a325c9 100644
--- src/bp-groups/bp-groups-functions.php
+++ src/bp-groups/bp-groups-functions.php
@@ -439,7 +439,7 @@ function groups_leave_group( $group_id, $user_id = 0 ) {
 		}
 	}
 
-	if ( ! groups_remove_member( $user_id, $group_id ) ) {
+	if ( ! BP_Groups_Member::delete( $user_id, $group_id ) ) {
 		return false;
 	}
 
@@ -1434,15 +1434,8 @@ function groups_unban_member( $user_id, $group_id ) {
 function groups_remove_member( $user_id, $group_id ) {
 
 	if ( ! bp_is_item_admin() ) {
- 		// bp_is_item_admin may not be set if this function is called outside of group context.
- 		// Site admins and group admins can remove a member from a group.
- 		// A member may also request to remove herself from a group.
- 		if ( ! current_user_can( 'bp_moderate' )
- 			&& ! groups_is_user_admin( bp_loggedin_user_id(), $group_id )
- 			&& $user_id != bp_loggedin_user_id() ) {
- 				return false;
- 			}
- 	}
+		return false;
+  	}
 
 	$member = new BP_Groups_Member( $user_id, $group_id );
 
