diff --git a/ring-android/app/proguard-rules.pro b/ring-android/app/proguard-rules.pro
index a29d5f0bcb35275e38ae43cc396cf4cb6e2c41ee..73f2edf3c6659939cf52830fdc3bbadb6ac858a5 100644
--- a/ring-android/app/proguard-rules.pro
+++ b/ring-android/app/proguard-rules.pro
@@ -2,6 +2,10 @@
   public <init>(android.content.Context);
 }
 
+-keepattributes Signature
+
+-keep class android.support.v7.widget.LinearLayoutManager { *; }
+
 -keep class cx.ring.service.**
 -keepclassmembers class cx.ring.service.** { *; }
 
diff --git a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
index d7f35741af70845015c05a55c93794f8c006aa17..5919d3b7efd3594c3a5f5a591aa9d80d6f955f1a 100644
--- a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
+++ b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
@@ -399,7 +399,7 @@ public class HomeActivity extends AppCompatActivity implements LocalService.Call
     /**
      * Defines callbacks for service binding, passed to bindService()
      */
-    private ServiceConnection mConnection = new ServiceConnection() {
+    private final ServiceConnection mConnection = new ServiceConnection() {
 
         @Override
         public void onServiceConnected(ComponentName className, IBinder s) {
@@ -410,39 +410,37 @@ public class HomeActivity extends AppCompatActivity implements LocalService.Call
             intentFilter.addAction(LocalService.ACTION_CONF_UPDATE);
             intentFilter.addAction(LocalService.ACTION_ACCOUNT_UPDATE);
             registerReceiver(receiver, intentFilter);
+            mBound = true;
 
-            fContent = new CallListFragment();
-            if (fMenuHead != null)
-                fMenu.removeHeaderView(fMenuHead.getView());
-            fMenu.inflateHeaderView(R.layout.menuheader);
-            fMenuHead = (MenuFragment) getFragmentManager().findFragmentById(R.id.accountselector);
+            FragmentManager fm = getFragmentManager();
+            fMenuHead = (MenuFragment) fm.findFragmentById(R.id.menu_head);
+            if (fMenuHead == null) {
+                fMenuHead = new MenuFragment();
+                getFragmentManager().beginTransaction().replace(R.id.menu_head, fMenuHead).commitAllowingStateLoss();
+            }
 
-            getFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commitAllowingStateLoss();
-            mBound = true;
-            Log.i(TAG, "Service connected service=" + service);
+            fContent = getFragmentManager().findFragmentById(R.id.main_frame);
+            if (fContent == null) {
+                fContent = new CallListFragment();
+                getFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commitAllowingStateLoss();
+            }
         }
 
         @Override
         public void onServiceDisconnected(ComponentName className) {
             Log.i(TAG, "onServiceConnected " + className.getClassName());
             if (fMenuHead != null) {
-                fMenu.removeHeaderView(fMenuHead.getView());
+                getFragmentManager().beginTransaction().remove(fMenuHead).commitAllowingStateLoss();
                 fMenuHead = null;
             }
 
             mBound = false;
-            Log.i(TAG, "Service disconnected service=" + service);
         }
     };
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        Log.i(TAG, "onOptionsItemSelected " + item.getItemId());
-
-        if (mDrawerToggle.onOptionsItemSelected(item)) {
-            return true;
-        }
-        return false;
+        return mDrawerToggle.onOptionsItemSelected(item);
     }
 
     @Override
diff --git a/ring-android/app/src/main/res/layout/activity_home.xml b/ring-android/app/src/main/res/layout/activity_home.xml
index 597fd2a98756ce75c49f339c025904e928311488..4efd6577a2bb57c2a83b492412782f8aebe54957 100644
--- a/ring-android/app/src/main/res/layout/activity_home.xml
+++ b/ring-android/app/src/main/res/layout/activity_home.xml
@@ -69,14 +69,14 @@ along with this program; if not, write to the Free Software
             android:layout_alignParentStart="true"
             android:layout_marginBottom="@dimen/action_button_bpadding"
             android:layout_marginLeft="@dimen/action_button_lpadding"
+            android:layout_marginStart="@dimen/action_button_lpadding"
             android:adjustViewBounds="false"
             android:baselineAlignBottom="false"
+            android:visibility="gone"
             app:elevation="6dp"
             app:fabSize="mini"
             app:pressedTranslationZ="12dp"
-            app:rippleColor="@android:color/white"
-            android:layout_marginStart="@dimen/action_button_lpadding"
-            android:visibility="gone" />
+            app:rippleColor="@android:color/white" />
 
     </RelativeLayout>
 
@@ -88,6 +88,7 @@ along with this program; if not, write to the Free Software
         android:fitsSystemWindows="true"
         android:theme="@style/AppThemeBase"
         android:windowBackground="@color/white"
+        app:headerLayout="@layout/menuheader"
         app:itemTextColor="?android:textColorPrimary"
         app:menu="@menu/drawer" />
 
diff --git a/ring-android/app/src/main/res/layout/frag_call.xml b/ring-android/app/src/main/res/layout/frag_call.xml
index 1ea59b9a5c5de4664c660ab360794b0af77c3ac3..6443674ad6f10f512e9166ea46c9b9611a698c09 100644
--- a/ring-android/app/src/main/res/layout/frag_call.xml
+++ b/ring-android/app/src/main/res/layout/frag_call.xml
@@ -79,7 +79,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
                 android:layout_below="@+id/contact_bubble"
                 android:gravity="center_horizontal"
                 android:textAppearance="?android:attr/textAppearanceLarge"
-                android:textColor="@color/text_color_primary_dark" />
+                android:textColor="@color/text_color_primary_dark"
+                android:singleLine="true" />
 
             <TextView
                 android:id="@+id/contact_bubble_num_txt"
@@ -152,7 +153,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
             app:elevation="6dp"
             app:pressedTranslationZ="12dp"
             app:rippleColor="@android:color/white"
-            android:layout_gravity="bottom|center_horizontal" />
+            android:layout_gravity="bottom|center_horizontal"
+            android:visibility="gone" />
 
         <RelativeLayout
             android:id="@+id/call_status_bar"
diff --git a/ring-android/app/src/main/res/layout/menuheader.xml b/ring-android/app/src/main/res/layout/menuheader.xml
index 47a4aee3cf598eb51814defabfb3c5121be6ad79..ebc00007262ebadc2957a205c2a2d378401a2e41 100644
--- a/ring-android/app/src/main/res/layout/menuheader.xml
+++ b/ring-android/app/src/main/res/layout/menuheader.xml
@@ -1,14 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <fragment
-        android:id="@+id/accountselector"
-        android:name="cx.ring.fragments.MenuFragment"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        tools:layout="@layout/frag_menu_header" />
-</LinearLayout>
\ No newline at end of file
+    android:orientation="vertical"
+    android:id="@+id/menu_head">
+</FrameLayout>
\ No newline at end of file