diff --git a/src/com/android/contacts/editor/CompactKindSectionView.java b/src/com/android/contacts/editor/CompactKindSectionView.java
index b4ee2bb..c1e659f 100644
--- a/src/com/android/contacts/editor/CompactKindSectionView.java
+++ b/src/com/android/contacts/editor/CompactKindSectionView.java
@@ -330,7 +330,7 @@
                 } else {
                     editorListener = new NonNameEditorListener();
                 }
-                for (ValuesDelta valuesDelta : kindSectionData.getVisibleNonEmptyValuesDeltas()) {
+                for (ValuesDelta valuesDelta : kindSectionData.getVisibleValuesDeltas()) {
                     addNonNameEditorView(kindSectionData.getRawContactDelta(),
                             kindSectionData.getDataKind(), valuesDelta, editorListener);
                 }
diff --git a/src/com/android/contacts/editor/KindSectionData.java b/src/com/android/contacts/editor/KindSectionData.java
index 341669a..bd9f687 100644
--- a/src/com/android/contacts/editor/KindSectionData.java
+++ b/src/com/android/contacts/editor/KindSectionData.java
@@ -53,12 +53,12 @@
         return valuesDeltas == null ? new ArrayList<ValuesDelta>() : valuesDeltas;
     }
 
-    /** Returns visible and non empty ValuesDeltas for the data kind this section represents. */
-    public List<ValuesDelta> getVisibleNonEmptyValuesDeltas() {
+    /** Returns visible and non no-op ValuesDeltas for the data kind this section represents. */
+    public List<ValuesDelta> getVisibleValuesDeltas() {
         final ArrayList<ValuesDelta> valuesDeltas = new ArrayList<> ();
         for (ValuesDelta valuesDelta : getValuesDeltas()) {
             // Same conditions as KindSectionView#rebuildFromState
-            if (valuesDelta.isVisible() && !valuesDelta.isNoop() && !isEmpty(valuesDelta)) {
+            if (valuesDelta.isVisible() && !valuesDelta.isNoop()) {
                 valuesDeltas.add(valuesDelta);
             }
         }
