diff --git a/res/layout/navigation_bar.xml b/res/layout/navigation_bar.xml
index 7840430..803705c 100644
--- a/res/layout/navigation_bar.xml
+++ b/res/layout/navigation_bar.xml
@@ -30,7 +30,7 @@
         android:gravity="center_vertical"
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:text="@string/search_label"
-        android:minWidth="220dip" />
+        android:minWidth="@dimen/action_bar_filter_min_width" />
 
     <view
         class="com.android.contacts.list.ContactListFilterView"
@@ -40,7 +40,8 @@
         android:layout_height="match_parent"
         android:layout_gravity="left|center_vertical"
         android:focusable="true"
-        android:minWidth="220dip" >
+        android:minWidth="@dimen/action_bar_filter_min_width"
+         >
         <ImageView
             android:id="@+id/icon"
             android:scaleType="fitCenter"
@@ -55,7 +56,9 @@
             android:layout_width="wrap_content"
             android:gravity="center_vertical"
             android:textAppearance="?android:attr/textAppearanceMedium"
-            android:ellipsize="end" />
+            android:ellipsize="end"
+            android:singleLine="true" 
+            android:maxWidth="@dimen/action_bar_filter_max_width" />
     </view>
 
     <SearchView
@@ -63,8 +66,8 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_gravity="center_vertical"
-        android:layout_marginLeft="32dip"  
-        android:maxWidth="300dip"
+        android:layout_marginLeft="@dimen/action_bar_search_spacing"  
+        android:maxWidth="@dimen/action_bar_search_max_width"
         android:iconifiedByDefault="false" />
 
 </LinearLayout>
diff --git a/res/values-xlarge-land/dimens.xml b/res/values-xlarge-land/dimens.xml
index 85bd3a8..52c521e 100644
--- a/res/values-xlarge-land/dimens.xml
+++ b/res/values-xlarge-land/dimens.xml
@@ -15,4 +15,8 @@
 -->
 <resources>
     <dimen name="quick_contact_width">452dip</dimen>
+    <dimen name="action_bar_filter_min_width">220dip</dimen>
+    <dimen name="action_bar_filter_max_width">300dip</dimen>
+    <dimen name="action_bar_search_max_width">336dip</dimen>
+    <dimen name="action_bar_search_spacing">32dip</dimen>
 </resources>
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
index 058e2cf..6ffbb31 100644
--- a/res/values-xlarge/dimens.xml
+++ b/res/values-xlarge/dimens.xml
@@ -18,4 +18,8 @@
     <dimen name="aggregation_suggestion_icon_size">64dip</dimen>
     <dimen name="quick_contact_width">356dip</dimen>
     <dimen name="contact_name_text_size">26sp</dimen>
+    <dimen name="action_bar_filter_min_width">120dip</dimen>
+    <dimen name="action_bar_filter_max_width">120dip</dimen>
+    <dimen name="action_bar_search_max_width">300dip</dimen>
+    <dimen name="action_bar_search_spacing">12dip</dimen>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index d55ebd6..0b2cffd 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -60,4 +60,17 @@
 
     <!-- Font size used for the contact name in the detail and the editor -->
     <dimen name="contact_name_text_size">18sp</dimen>
+
+    <!-- Minimum width of the filter selector in the action bar -->
+    <dimen name="action_bar_filter_min_width">100dip</dimen>
+
+    <!-- Maximum width of the filter selector in the action bar -->
+    <dimen name="action_bar_filter_max_width">100dip</dimen>
+
+    <!-- Maximum width of the search field in the action bar -->
+    <dimen name="action_bar_search_max_width">100dip</dimen>
+
+    <!-- Spacing on the left the search field in the action bar -->
+    <dimen name="action_bar_search_spacing">12dip</dimen>
+
 </resources>
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index d9c577e..b117d77 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -227,6 +227,7 @@
     private long mLoaderStartTime;
 
     private int mStatus;
+    private boolean mSaveOnStop = true;
 
     private AggregationSuggestionEngine mAggregationSuggestionEngine;
     private long mAggregationSuggestionsRawContactId;
@@ -265,8 +266,9 @@
         if (mAggregationSuggestionEngine != null) {
             mAggregationSuggestionEngine.quit();
         }
+
         // If anything was left unsaved, save it now but keep the editor open.
-        if (!getActivity().isChangingConfigurations() && mStatus == Status.EDITING) {
+        if (!getActivity().isChangingConfigurations() && mStatus == Status.EDITING && mSaveOnStop) {
             save(SaveMode.RELOAD);
         }
     }
@@ -321,6 +323,7 @@
 
     @Override
     public void onStart() {
+        mSaveOnStop = true;
         getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupLoaderListener);
         super.onStart();
     }
@@ -736,6 +739,7 @@
 
             // Launch gallery to crop the photo
             final Intent intent = getCropImageIntent(Uri.fromFile(f));
+            mSaveOnStop = false;
             startActivityForResult(intent, REQUEST_CODE_PHOTO_PICKED_WITH_DATA);
         } catch (Exception e) {
             Log.e(TAG, "Cannot crop image", e);
@@ -1821,6 +1825,7 @@
                 mCurrentPhotoFile = new File(PHOTO_DIR, getPhotoFileName());
                 final Intent intent = getTakePickIntent(mCurrentPhotoFile);
 
+                mSaveOnStop = false;
                 startActivityForResult(intent, REQUEST_CODE_CAMERA_WITH_DATA);
             } catch (ActivityNotFoundException e) {
                 Toast.makeText(mContext, R.string.photoPickerNotFoundText,
@@ -1837,6 +1842,7 @@
             try {
                 // Launch picker to choose photo for selected contact
                 final Intent intent = getPhotoPickIntent();
+                mSaveOnStop = false;
                 startActivityForResult(intent, REQUEST_CODE_PHOTO_PICKED_WITH_DATA);
             } catch (ActivityNotFoundException e) {
                 Toast.makeText(mContext, R.string.photoPickerNotFoundText,
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index 6bdfd97..70eb0db 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -432,6 +432,12 @@
     }
 
     protected void onPartitionLoaded(int partitionIndex, Cursor data) {
+        if (partitionIndex >= mAdapter.getPartitionCount()) {
+            // When we get unsolicited data, ignore it.  This could happen
+            // when we are switching from search mode to the default mode.
+            return;
+        }
+
         mAdapter.changeCursor(partitionIndex, data);
         showCount(partitionIndex, data);
 
