diff --git a/res/layout/dialer_preferences.xml b/res/layout/dialer_preferences.xml
index bbb79bc..023b122 100644
--- a/res/layout/dialer_preferences.xml
+++ b/res/layout/dialer_preferences.xml
@@ -25,14 +25,6 @@
     android:gravity="center_vertical"
     android:paddingEnd="?android:attr/scrollbarSize">
 
-    <ImageView
-        android:id="@+id/icon"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="6dip"
-        android:layout_marginEnd="6dip"
-        android:layout_gravity="center" />
-
     <RelativeLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index e48720e..383a8fa 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -137,9 +137,8 @@
     <dimen name="empty_list_message_text_size">16sp</dimen>
 
     <!-- Dimensions for individual preference cards -->
-    <dimen name="preference_padding_top">18dp</dimen>
+    <dimen name="preference_padding_top">16dp</dimen>
     <dimen name="preference_padding_bottom">16dp</dimen>
     <dimen name="preference_side_margin">16dp</dimen>
-    <dimen name="preference_list_top_padding">4dp</dimen>
     <dimen name="preference_summary_line_spacing_extra">4dp</dimen>
 </resources>
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index db45135..f7a92d7 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -36,9 +36,6 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
-        final int topPadding = getResources().getDimensionPixelSize(
-                R.dimen.preference_list_top_padding);
-        getListView().setPadding(0, topPadding, 0, 0);
     }
 
     @Override
@@ -113,7 +110,6 @@
      */
     private static class HeaderAdapter extends ArrayAdapter<Header> {
         static class HeaderViewHolder {
-            ImageView icon;
             TextView title;
             TextView summary;
         }
@@ -133,7 +129,6 @@
             if (convertView == null) {
                 view = mInflater.inflate(R.layout.dialer_preferences, parent, false);
                 holder = new HeaderViewHolder();
-                holder.icon = (ImageView) view.findViewById(R.id.icon);
                 holder.title = (TextView) view.findViewById(R.id.title);
                 holder.summary = (TextView) view.findViewById(R.id.summary);
                 view.setTag(holder);
@@ -144,7 +139,6 @@
 
             // All view fields must be updated every time, because the view may be recycled
             Header header = getItem(position);
-            holder.icon.setImageResource(header.iconRes);
             holder.title.setText(header.getTitle(getContext().getResources()));
             CharSequence summary = header.getSummary(getContext().getResources());
             if (!TextUtils.isEmpty(summary)) {
