diff --git a/src/com/android/contacts/editor/CompactContactEditorFragment.java b/src/com/android/contacts/editor/CompactContactEditorFragment.java
index 64bcf86..1620ed1 100644
--- a/src/com/android/contacts/editor/CompactContactEditorFragment.java
+++ b/src/com/android/contacts/editor/CompactContactEditorFragment.java
@@ -345,12 +345,9 @@
         if (isInsert) {
             // For inserts, prevent any changes from being saved when the base fragment is destroyed
             mStatus = Status.CLOSING;
-        } else {
-            // Prevent a Toast from being displayed as we transition to the full editor
-            mShowToastAfterSave = false;
-
+        } else if (hasPendingChanges()) {
             // Save whatever is in the form
-            save(SaveMode.RELOAD, /* backPressed =*/ false);
+            save(SaveMode.CLOSE, /* backPressed =*/ false);
         }
 
         // Prepare an Intent to start the expanded editor
diff --git a/src/com/android/contacts/editor/CompactRawContactsEditorView.java b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
index a34c911..df6cc3f 100644
--- a/src/com/android/contacts/editor/CompactRawContactsEditorView.java
+++ b/src/com/android/contacts/editor/CompactRawContactsEditorView.java
@@ -174,13 +174,6 @@
     @Override
     public void onClick(View view) {
         if (view.getId() == R.id.more_fields && mListener != null ) {
-            // We mark the name that was displayed as super primary before expanding
-            // so that a save on the expanded editor (without a name change) does not
-            // cause the displayed name to change.
-            if (mNameValuesDelta != null) {
-                mNameValuesDelta.setSuperPrimary(true);
-            }
-
             mListener.onExpandEditor();
         }
     }
diff --git a/src/com/android/contacts/editor/ContactEditorBaseFragment.java b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
index 6ba7188..65efb04 100644
--- a/src/com/android/contacts/editor/ContactEditorBaseFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
@@ -373,10 +373,6 @@
     // Used to pre-populate the editor with a display name when a user edits a read-only contact.
     protected String mDefaultDisplayName;
 
-    // Whether to show a Toast message after saves have completed.
-    // Does not affect successful toasts shown after joins, which are never displayed.
-    protected boolean mShowToastAfterSave = true;
-
     /**
      * The contact data loader listener.
      */
@@ -1343,7 +1339,7 @@
             Uri contactLookupUri, Bundle updatedPhotos, boolean backPressed, long photoId) {
         if (hadChanges) {
             if (saveSucceeded) {
-                if (saveMode != SaveMode.JOIN && mShowToastAfterSave) {
+                if (saveMode != SaveMode.JOIN) {
                     Toast.makeText(mContext, R.string.contactSavedToast, Toast.LENGTH_SHORT).show();
                 }
             } else {
