diff --git a/src/com/android/contacts/activities/GroupMembersActivity.java b/src/com/android/contacts/activities/GroupMembersActivity.java
index f8efa85..093c8b6 100644
--- a/src/com/android/contacts/activities/GroupMembersActivity.java
+++ b/src/com/android/contacts/activities/GroupMembersActivity.java
@@ -255,9 +255,14 @@
 
             toast(getToastMessageForSaveAction(newIntent.getAction()));
 
-            // If we're editing the group, don't reload the fragment so the user can
-            // continue to remove group members one by one
-            if (!mIsEditMode && !ACTION_REMOVE_FROM_GROUP.equals(newIntent.getAction())) {
+            if (mIsEditMode) {
+                // If we're removing group members one at a time, don't reload the fragment so
+                // the user can continue to remove group members one by one
+                if (getGroupCount() == 1) {
+                    // If we're deleting the last group member, exit edit mode
+                    onBackPressed();
+                }
+            } else if (!ACTION_REMOVE_FROM_GROUP.equals(newIntent.getAction())) {
                 replaceGroupMembersFragment();
                 invalidateOptionsMenu();
             }
@@ -281,6 +286,11 @@
         throw new IllegalArgumentException("Unhanded contact save action " + action);
     }
 
+    private int getGroupCount() {
+        return mMembersFragment != null && mMembersFragment.getAdapter() != null
+                ? mMembersFragment.getAdapter().getCount() : -1;
+    }
+
     private void replaceGroupMembersFragment() {
         mMembersFragment = GroupMembersFragment.newInstance(mGroupUri);
         mMembersFragment.setListener(this);
