diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java
index fb1de05..d44a5da 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -82,9 +82,11 @@
 import com.android.incallui.maps.MapsComponent;
 import com.android.incallui.sessiondata.AvatarPresenter;
 import com.android.incallui.sessiondata.MultimediaFragment;
+import com.android.incallui.speakeasy.SpeakEasyComponent;
 import com.android.incallui.util.AccessibilityUtil;
 import com.android.incallui.video.protocol.VideoCallScreen;
 import com.android.incallui.videotech.utils.VideoUtils;
+import com.google.common.base.Optional;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
@@ -206,7 +208,7 @@
       }
     };
 
-    @DrawableRes public final int icon;
+    @DrawableRes public int icon;
     @StringRes public final int contentDescription;
     @StringRes public final int accessibilityLabel;
     @StringRes public final int hintText;
@@ -456,6 +458,11 @@
       answerAndReleaseButton.setVisibility(View.VISIBLE);
       answerScreenDelegate.onAnswerAndReleaseButtonEnabled();
     } else if (allowSpeakEasy()) {
+      Optional<Integer> alternativeIcon = SpeakEasyComponent.get(getContext()).speakEasyIcon();
+      if (alternativeIcon.isPresent()) {
+        // TODO(erfanian): Replace enum hack when we have a dedicated button.
+        SecondaryBehavior.SPEAKEASY.icon = alternativeIcon.get();
+      }
       answerAndReleaseBehavior = SecondaryBehavior.SPEAKEASY;
       answerAndReleaseBehavior.applyToView(answerAndReleaseButton);
       answerAndReleaseButton.setVisibility(View.VISIBLE);
diff --git a/java/com/android/incallui/speakeasy/SpeakEasyComponent.java b/java/com/android/incallui/speakeasy/SpeakEasyComponent.java
index 320bc69..6dae441 100644
--- a/java/com/android/incallui/speakeasy/SpeakEasyComponent.java
+++ b/java/com/android/incallui/speakeasy/SpeakEasyComponent.java
@@ -30,6 +30,8 @@
 
   public abstract Optional<Fragment> speakEasySettingsFragment();
 
+  public abstract Optional<Integer> speakEasyIcon();
+
   public static SpeakEasyComponent get(Context context) {
     return ((SpeakEasyComponent.HasComponent)
             ((HasRootComponent) context.getApplicationContext()).component())
diff --git a/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java b/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java
index d5f6443..67b564c 100644
--- a/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java
+++ b/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java
@@ -36,4 +36,9 @@
   static Optional<Fragment> provideSpeakEasySettingsFragment() {
     return Optional.absent();
   }
+
+  @Provides
+  static Optional<Integer> provideSpeakEasyIcon() {
+    return Optional.absent();
+  }
 }
