diff --git a/src/com/android/contacts/ContactLoader.java b/src/com/android/contacts/ContactLoader.java
index 064deb5..ceaa246 100644
--- a/src/com/android/contacts/ContactLoader.java
+++ b/src/com/android/contacts/ContactLoader.java
@@ -113,7 +113,7 @@
         private final boolean mStarred;
         private final Integer mPresence;
         private final ArrayList<Entity> mEntities;
-        private ArrayList<StreamItemEntry> mStreamItems;
+        private final ArrayList<StreamItemEntry> mStreamItems;
         private final HashMap<Long, DataStatus> mStatuses;
         private final ArrayList<AccountType> mInvitableAccountTypes;
 
@@ -127,9 +127,9 @@
 
         private boolean mLoadingPhoto;
         private byte[] mPhotoBinaryData;
-        private boolean mSendToVoicemail;
-        private String mCustomRingtone;
-        private boolean mIsUserProfile;
+        private final boolean mSendToVoicemail;
+        private final String mCustomRingtone;
+        private final boolean mIsUserProfile;
 
         /**
          * Constructor for case "no contact found". This must only be used for the
@@ -618,7 +618,9 @@
                         loadStreamItems(result);
                     }
                     loadPhotoBinaryData(result);
-                    if (mLoadInvitableAccountTypes) {
+
+                    // Note ME profile should never have "Add connection"
+                    if (mLoadInvitableAccountTypes && !result.isUserProfile()) {
                         loadInvitableAccountTypes(result);
                     }
                 }
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index d56afc1..88ae7da 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -787,6 +787,9 @@
         String attribution = ContactDetailDisplayUtils.getAttribution(mContext, mContactData);
         boolean hasAttribution = !TextUtils.isEmpty(attribution);
         int networksCount = mOtherEntriesMap.keySet().size();
+
+        // Note: invitableCount will always be 0 for me profile.  (ContactLoader won't set
+        // invitable types for me profile.)
         int invitableCount = mContactData.getInvitableAccountTypes().size();
         if (!hasAttribution && networksCount == 0 && invitableCount == 0) {
             return;
