diff --git a/res/layout/contact_picker_content.xml b/res/layout/contact_picker_content.xml
index 613af69..0a3fa1d 100644
--- a/res/layout/contact_picker_content.xml
+++ b/res/layout/contact_picker_content.xml
@@ -14,26 +14,25 @@
      limitations under the License.
 -->
 
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/pinned_header_list_layout"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+             android:layout_width="match_parent"
+             android:layout_height="match_parent">
 
     <view
         class="com.android.contacts.common.list.PinnedHeaderListView"
         android:id="@android:id/list"
         android:layout_width="match_parent"
-        android:layout_height="0dip"
+        android:layout_height="match_parent"
         android:layout_marginLeft="?attr/contact_browser_list_padding_left"
         android:layout_marginRight="?attr/contact_browser_list_padding_right"
-        android:fastScrollEnabled="true"
-        android:layout_weight="1" />
+        android:fastScrollEnabled="true"/>
 
-    <ViewStub
-        android:id="@+id/footer_stub"
-        android:layout="@layout/footer_panel"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content" />
-</LinearLayout>
+    <TextView android:id="@android:id/empty"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:layout_gravity="center"
+              android:textSize="20sp"
+              android:textColor="?android:attr/textColorSecondary"
+              android:text="@string/listFoundAllContactsZero"/>
+
+</FrameLayout>
diff --git a/res/xml/preference_display_options.xml b/res/xml/preference_display_options.xml
index a65010d..4ec31b2 100644
--- a/res/xml/preference_display_options.xml
+++ b/res/xml/preference_display_options.xml
@@ -15,16 +15,13 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-    <PreferenceCategory
-        android:title="@string/preference_displayOptions">
-        <com.android.contacts.preference.SortOrderPreference
-            android:key="sortOrder"
-            android:title="@string/display_options_sort_list_by"
-            android:dialogTitle="@string/display_options_sort_list_by" />
+    <com.android.contacts.preference.SortOrderPreference
+        android:key="sortOrder"
+        android:title="@string/display_options_sort_list_by"
+        android:dialogTitle="@string/display_options_sort_list_by" />
 
-        <com.android.contacts.preference.DisplayOrderPreference
-            android:key="displayOrder"
-            android:title="@string/display_options_view_names_as"
-            android:dialogTitle="@string/display_options_view_names_as" />
-    </PreferenceCategory>
+    <com.android.contacts.preference.DisplayOrderPreference
+        android:key="displayOrder"
+        android:title="@string/display_options_view_names_as"
+        android:dialogTitle="@string/display_options_view_names_as" />
 </PreferenceScreen>
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index c79ba2f..d069c8d 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -18,6 +18,8 @@
 
 import android.content.Context;
 import android.database.Cursor;
+import android.os.Bundle;
+import android.os.Parcelable;
 import android.provider.ContactsContract.CommonDataKinds.GroupMembership;
 import android.provider.ContactsContract.CommonDataKinds.Organization;
 import android.provider.ContactsContract.CommonDataKinds.Photo;
@@ -60,12 +62,19 @@
  * {@link RawContactModifier} to ensure that {@link AccountType} are enforced.
  */
 public class RawContactEditorView extends BaseRawContactEditorView {
+    private static final String KEY_ORGANIZATION_VIEW_EXPANDED = "organizationViewExpanded";
+    private static final String KEY_SUPER_INSTANCE_STATE = "superInstanceState";
+
     private LayoutInflater mInflater;
 
     private StructuredNameEditorView mName;
     private PhoneticNameEditorView mPhoneticName;
     private GroupMembershipView mGroupMembershipView;
 
+    private ViewGroup mOrganizationSectionViewContainer;
+    private View mAddOrganizationButton;
+    private boolean mOrganizationViewExpanded = false;
+
     private ViewGroup mFields;
 
     private ImageView mAccountIcon;
@@ -148,6 +157,35 @@
         });
     }
 
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        Bundle bundle = new Bundle();
+        bundle.putBoolean(KEY_ORGANIZATION_VIEW_EXPANDED, mOrganizationViewExpanded);
+        // super implementation of onSaveInstanceState returns null
+        bundle.putParcelable(KEY_SUPER_INSTANCE_STATE, super.onSaveInstanceState());
+        return bundle;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        if (state instanceof Bundle) {
+            Bundle bundle = (Bundle) state;
+            mOrganizationViewExpanded = bundle.getBoolean(KEY_ORGANIZATION_VIEW_EXPANDED);
+            if (mOrganizationViewExpanded) {
+                // we have to manually perform the expansion here because
+                // onRestoreInstanceState is called after setState. So at the point
+                // of the creation of the organization view, mOrganizationViewExpanded
+                // does not have the correct value yet.
+                mOrganizationSectionViewContainer.setVisibility(VISIBLE);
+                mAddOrganizationButton.setVisibility(GONE);
+            }
+            super.onRestoreInstanceState(bundle.getParcelable(KEY_SUPER_INSTANCE_STATE));
+            return;
+        }
+        super.onRestoreInstanceState(state);
+        return;
+    }
+
     /**
      * Set the internal state for this view, given a current
      * {@link RawContactDelta} state and the {@link AccountType} that
@@ -264,21 +302,21 @@
                     // EditText fields only when clicked
                     final View organizationView = mInflater.inflate(
                             R.layout.organization_editor_view_switcher, mFields, false);
-                    final View addOrganizationButton = organizationView.findViewById(
+                    mAddOrganizationButton = organizationView.findViewById(
                             R.id.add_organization_button);
-                    final ViewGroup organizationSectionViewContainer =
+                    mOrganizationSectionViewContainer =
                             (ViewGroup) organizationView.findViewById(R.id.container);
-
-                    organizationSectionViewContainer.addView(section);
+                    mOrganizationSectionViewContainer.addView(section);
 
                     // Setup the click listener for the "add organization" button
-                    addOrganizationButton.setOnClickListener(new OnClickListener() {
+                    mAddOrganizationButton.setOnClickListener(new OnClickListener() {
                         @Override
                         public void onClick(View v) {
                             // Once the user expands the organization field, the user cannot
                             // collapse them again.
-                            EditorAnimator.getInstance().expandOrganization(addOrganizationButton,
-                                    organizationSectionViewContainer);
+                            EditorAnimator.getInstance().expandOrganization(mAddOrganizationButton,
+                                    mOrganizationSectionViewContainer);
+                            mOrganizationViewExpanded = true;
                         }
                     });
 
diff --git a/src/com/android/contacts/group/GroupBrowseListAdapter.java b/src/com/android/contacts/group/GroupBrowseListAdapter.java
index 32296c2..f1c3aba 100644
--- a/src/com/android/contacts/group/GroupBrowseListAdapter.java
+++ b/src/com/android/contacts/group/GroupBrowseListAdapter.java
@@ -60,7 +60,7 @@
         // first group
         if (mSelectedGroupUri == null && cursor != null && cursor.getCount() > 0) {
             GroupListItem firstItem = getItem(0);
-            long groupId = (firstItem == null) ? null : firstItem.getGroupId();
+            long groupId = (firstItem == null) ? 0 : firstItem.getGroupId();
             mSelectedGroupUri = getGroupUriFromId(groupId);
         }
 
