diff --git src/bp-groups/bp-groups-functions.php src/bp-groups/bp-groups-functions.php
index 011231f..8b19738 100644
--- src/bp-groups/bp-groups-functions.php
+++ src/bp-groups/bp-groups-functions.php
@@ -1083,7 +1083,7 @@ function groups_invite_user( $args = '' ) {
  */
 function groups_uninvite_user( $user_id, $group_id ) {
 
-	if ( !BP_Groups_Member::delete( $user_id, $group_id ) )
+	if ( ! BP_Groups_Member::delete_invite( $user_id, $group_id ) )
 		return false;
 
 	/**
@@ -1160,7 +1160,7 @@ function groups_accept_invite( $user_id, $group_id ) {
  * @return bool True on success, false on failure.
  */
 function groups_reject_invite( $user_id, $group_id ) {
-	if ( ! BP_Groups_Member::delete( $user_id, $group_id ) )
+	if ( ! BP_Groups_Member::delete_invite( $user_id, $group_id ) )
 		return false;
 
 	/**
@@ -1570,7 +1570,7 @@ function groups_delete_membership_request( $membership_id, $user_id = 0, $group_
 	else
 		$membership = new BP_Groups_Member( false, false, $membership_id );
 
-	if ( !BP_Groups_Member::delete( $membership->user_id, $membership->group_id ) )
+	if ( ! BP_Groups_Member::delete_request( $membership->user_id, $membership->group_id ) )
 		return false;
 
 	return $membership;
diff --git tests/phpunit/testcases/groups/class-bp-groups-member.php tests/phpunit/testcases/groups/class-bp-groups-member.php
index 2f92182..1db0d5f 100644
--- tests/phpunit/testcases/groups/class-bp-groups-member.php
+++ tests/phpunit/testcases/groups/class-bp-groups-member.php
@@ -247,6 +247,50 @@ class BP_Tests_BP_Groups_Member_TestCases extends BP_UnitTestCase {
 	}
 
 	/**
+	 * @group groups_reject_membership_request
+	 * @group group_membership_requests
+	 * @group group_membership
+	 */
+	public function test_bp_groups_reject_membership_request_leave_memberships_intact() {
+		$u1 = $this->factory->user->create();
+		$g = $this->factory->group->create( array(
+			'status' => 'private',
+		) );
+
+		$now = time();
+		$this->add_user_to_group( $u1, $g );
+
+		// Confirmed memberships should be left intact.
+		groups_reject_membership_request( null, $u1, $g );
+		$u1_is_member = groups_is_user_member( $u1, $g );
+		$this->assertTrue( is_numeric( $u1_is_member ) && $u1_is_member > 0 );
+	}
+
+	/**
+	 * @group groups_reject_membership_request
+	 * @group group_membership_requests
+	 * @group group_membership
+	 */
+	public function test_bp_groups_reject_membership_request_leave_invites_intact() {
+		$u1 = $this->factory->user->create();
+		$u2 = $this->factory->user->create();
+		$g = $this->factory->group->create( array(
+			'status' => 'private',
+		) );
+
+		$now = time();
+		$this->add_user_to_group( $u1, $g, array(
+			'date_modified' => date( 'Y-m-d H:i:s', $now - 60 ),
+		) );
+
+		// Outstanding invitations should be left intact.
+		self::invite_user_to_group( $u2, $g, $u1 );
+		groups_reject_membership_request( null, $u2, $g );
+		$u2_has_invite = groups_check_user_has_invite( $u2, $g );
+		$this->assertTrue( is_numeric( $u2_has_invite ) && $u2_has_invite > 0 );
+	}
+
+	/**
 	 * @group groups_delete_membership_request
 	 * @group group_membership_requests
 	 * @group group_membership
@@ -265,6 +309,50 @@ class BP_Tests_BP_Groups_Member_TestCases extends BP_UnitTestCase {
 	}
 
 	/**
+	 * @group groups_delete_membership_request
+	 * @group group_membership_requests
+	 * @group group_membership
+	 */
+	public function test_bp_groups_delete_membership_request_leave_memberships_intact() {
+		$u1 = $this->factory->user->create();
+		$g = $this->factory->group->create( array(
+			'status' => 'private',
+		) );
+
+		$now = time();
+		$this->add_user_to_group( $u1, $g );
+
+		// Confirmed memberships should be left intact.
+		groups_delete_membership_request( null, $u1, $g );
+		$u1_is_member = groups_is_user_member( $u1, $g );
+		$this->assertTrue( is_numeric( $u1_is_member )  && $u1_is_member > 0 );
+	}
+
+	/**
+	 * @group groups_delete_membership_request
+	 * @group group_membership_requests
+	 * @group group_membership
+	 */
+	public function test_bp_groups_delete_membership_request_leave_invites_intact() {
+		$u1 = $this->factory->user->create();
+		$u2 = $this->factory->user->create();
+		$g = $this->factory->group->create( array(
+			'status' => 'private',
+		) );
+
+		$now = time();
+		$this->add_user_to_group( $u1, $g, array(
+			'date_modified' => date( 'Y-m-d H:i:s', $now - 60 ),
+		) );
+
+		// Outstanding invitations should be left intact.
+		self::invite_user_to_group( $u2, $g, $u1 );
+		groups_delete_membership_request( null, $u2, $g );
+		$u2_has_invite = groups_check_user_has_invite( $u2, $g );
+		$this->assertTrue( is_numeric( $u2_has_invite ) && $u2_has_invite > 0 );
+	}
+
+	/**
 	 * @group groups_reject_invite
 	 * @group group_invitations
 	 * @group group_membership
@@ -289,6 +377,46 @@ class BP_Tests_BP_Groups_Member_TestCases extends BP_UnitTestCase {
 	}
 
 	/**
+	 * @group groups_reject_invite
+	 * @group group_invitations
+	 * @group group_membership
+	 */
+	public function test_bp_groups_reject_invite_leave_memberships_intact() {
+		$u1 = $this->factory->user->create();
+		$g = $this->factory->group->create( array(
+			'status' => 'private',
+		) );
+
+		$now = time();
+		$this->add_user_to_group( $u1, $g, array(
+			'date_modified' => date( 'Y-m-d H:i:s', $now - 60 ),
+		) );
+
+		// Confirmed memberships should be left intact.
+		groups_reject_invite( $u1, $g );
+		$u1_is_member = groups_is_user_member( $u1, $g );
+		$this->assertTrue( is_numeric( $u1_is_member ) && $u1_is_member > 0 );
+	}
+
+	/**
+	 * @group groups_reject_invite
+	 * @group group_invitations
+	 * @group group_membership
+	 */
+	public function test_bp_groups_reject_invite_leave_requests_intact() {
+		$u1 = $this->factory->user->create();
+		$g = $this->factory->group->create( array(
+			'status' => 'private',
+		) );
+
+		// Membership requests should be left intact.
+		self::create_group_membership_request( $u1, $g );
+		groups_reject_invite( $u1, $g );
+		$u1_has_request = groups_check_for_membership_request( $u1, $g );
+		$this->assertTrue( is_numeric( $u1_has_request ) && $u1_has_request > 0 );
+	}
+
+	/**
 	 * @group groups_delete_invite
 	 * @group group_invitations
 	 * @group group_membership
@@ -376,6 +504,47 @@ class BP_Tests_BP_Groups_Member_TestCases extends BP_UnitTestCase {
 	}
 
 	/**
+	 * @group groups_uninvite_user
+	 * @group group_invitations
+	 * @group group_membership
+	 */
+	public function test_bp_groups_uninvite_user_leave_memberships_intact() {
+		$u1 = $this->factory->user->create();
+		$g = $this->factory->group->create( array(
+			'status' => 'private',
+		) );
+
+		$now = time();
+		$this->add_user_to_group( $u1, $g, array(
+			'date_modified' => date( 'Y-m-d H:i:s', $now - 60 ),
+		) );
+
+		// Confirmed memberships should be left intact.
+		$u1_is_member_before = groups_is_user_member( $u1, $g );
+		groups_uninvite_user( $u1, $g );
+		$u1_is_member = groups_is_user_member( $u1, $g );
+		$this->assertTrue( is_numeric( $u1_is_member ) && $u1_is_member > 0 );
+	}
+
+	/**
+	 * @group groups_uninvite_user
+	 * @group group_invitations
+	 * @group group_membership
+	 */
+	public function test_bp_groups_uninvite_user_leave_requests_intact() {
+		$u1 = $this->factory->user->create();
+		$g = $this->factory->group->create( array(
+			'status' => 'private',
+		) );
+
+		// Membership requests should be left intact.
+		self::create_group_membership_request( $u1, $g );
+		groups_uninvite_user( $u1, $g );
+		$u1_has_request = groups_check_for_membership_request( $u1, $g );
+		$this->assertTrue( is_numeric( $u1_has_request ) && $u1_has_request > 0 );
+	}
+
+	/**
 	 * @group groups_join_group
 	 * @group group_membership
 	 */
