diff --git a/src/com/android/contacts/activities/GroupMembersActivity.java b/src/com/android/contacts/activities/GroupMembersActivity.java
index f8a83f6..f687728 100644
--- a/src/com/android/contacts/activities/GroupMembersActivity.java
+++ b/src/com/android/contacts/activities/GroupMembersActivity.java
@@ -186,6 +186,7 @@
             mGroupMetadata = savedState.getParcelable(KEY_GROUP_METADATA);
         } else {
             mGroupUri = getIntent().getData();
+            setTitle(getIntent().getStringExtra(GroupUtil.EXTRA_GROUP_NAME));
         }
         if (mGroupUri == null) {
             setResultCanceledAndFinish(R.string.groupLoadErrorToast);
@@ -201,10 +202,6 @@
                 R.string.enter_contact_name);
         mActionBarAdapter.setShowHomeIcon(true);
 
-        // Avoid showing default "Contacts" title before group metadata is loaded. The title will
-        // be changed to group name when onGroupMetadataLoaded() is called.
-        setActionBarTitle(getIntent().getStringExtra(GroupUtil.EXTRA_GROUP_NAME));
-
         // Add the members list fragment
         final FragmentManager fragmentManager = getFragmentManager();
         mMembersFragment = (GroupMembersFragment)
@@ -578,17 +575,10 @@
     public void onGroupMetadataLoaded(GroupMetadata groupMetadata) {
         mGroupMetadata = groupMetadata;
         updateGroupMenu(mGroupMetadata);
-        setActionBarTitle(mGroupMetadata.groupName);
+        setTitle(mGroupMetadata.groupName);
         invalidateOptionsMenu();
     }
 
-    private void setActionBarTitle(String title) {
-        final ActionBar actionBar = getSupportActionBar();
-        if (actionBar != null) {
-            actionBar.setTitle(title);
-        }
-    }
-
     @Override
     public void onGroupMetadataLoadFailed() {
         setResultCanceledAndFinish(R.string.groupLoadErrorToast);
