diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
index 718dd52..82c576f 100644
--- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -58,11 +58,16 @@
         AudioModeProvider.getInstance().addListener(this);
 
         // register for call state changes last
-        InCallPresenter.getInstance().addListener(this);
-        InCallPresenter.getInstance().addIncomingCallListener(this);
-        InCallPresenter.getInstance().addDetailsListener(this);
-        InCallPresenter.getInstance().addCanAddCallListener(this);
-        InCallPresenter.getInstance().getInCallCameraManager().addCameraSelectionListener(this);
+        final InCallPresenter inCallPresenter = InCallPresenter.getInstance();
+        inCallPresenter.addListener(this);
+        inCallPresenter.addIncomingCallListener(this);
+        inCallPresenter.addDetailsListener(this);
+        inCallPresenter.addCanAddCallListener(this);
+        inCallPresenter.getInCallCameraManager().addCameraSelectionListener(this);
+
+        // Update the buttons state immediately for the current call
+        onStateChange(InCallState.NO_CALLS, inCallPresenter.getInCallState(),
+                CallList.getInstance());
     }
 
     @Override
@@ -100,7 +105,7 @@
             if (ui != null) {
                 ui.displayDialpad(false /* show */, true /* animate */);
             }
-            mCall = null;
+            mCall = callList.getIncomingCall();
         } else {
             mCall = null;
         }
@@ -336,17 +341,11 @@
                 state.isConnectingOrConnected() &&!state.isIncoming() && call != null;
         ui.setEnabled(isEnabled);
 
-        if (!isEnabled) {
+        if (call == null) {
             return;
         }
 
         updateButtonsState(call);
-
-        ui.enableButton(BUTTON_MUTE, call.can(android.telecom.Call.Details.CAPABILITY_MUTE));
-    }
-
-    private static int toInteger(boolean b) {
-        return b ? 1 : 0;
     }
 
     /**
