diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 8d4521f..772cce9 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -44,7 +44,6 @@
 import android.widget.EditText;
 
 import com.android.phone.common.HapticFeedback;
-import com.android.phone.common.util.ViewUtil;
 
 
 /**
@@ -193,7 +192,7 @@
         mDelete.setOnClickListener(this);
         mDelete.setOnLongClickListener(this);
 
-        mDialButton = findViewById(R.id.floating_action_button);
+        mDialButton = findViewById(R.id.dialButton);
 
         // Check whether we should show the onscreen "Dial" button and co.
         Resources res = getResources();
@@ -202,8 +201,6 @@
         } else {
             mDialButton.setVisibility(View.GONE);
         }
-        View floatingActionButtonContainer = findViewById(R.id.floating_action_button_container);
-        ViewUtil.setupFloatingActionButton(floatingActionButtonContainer, getResources());
 
         if (icicle != null) {
             super.onRestoreInstanceState(icicle);
@@ -408,7 +405,7 @@
                 keyPressed(KeyEvent.KEYCODE_DEL);
                 return;
             }
-            case R.id.floating_action_button: {
+            case R.id.dialButton: {
                 mHaptic.vibrate();  // Vibrate here too, just like we do for the regular keys
                 placeCall();
                 return;
@@ -635,6 +632,7 @@
     private void updateDialAndDeleteButtonStateEnabledAttr() {
         final boolean notEmpty = mDigits.length() != 0;
 
+        mDialButton.setEnabled(notEmpty);
         mDelete.setEnabled(notEmpty);
     }
 }
