diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index b4070cc..85be754 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -845,7 +845,7 @@
             IntentFilter filter = new IntentFilter(ACTION_WIFI_CALL_READY_STATUS_CHANGE);
             context.registerReceiver(mWifiCallReadyReceiver, filter);
             changeDialpadButton(WifiCallUtils.isWifiCallReadyEnabled(context));
-         }
+        }
         Trace.endSection();
     }
 
@@ -2071,17 +2071,18 @@
     private void dialAfterNetworkCheck() {
         if (ActivityCompat.checkSelfPermission(getContext(),
                 Manifest.permission.ACCESS_COARSE_LOCATION) !=
-            PackageManager.PERMISSION_GRANTED) {
-            requestPermissions(new String[] {Manifest.permission.ACCESS_COARSE_LOCATION},
+                PackageManager.PERMISSION_GRANTED) {
+            requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                     PERMISSION_REQUEST_CODE_LOCATION);
         } else {
-            if(WifiCallUtils.shallShowWifiCallDialog(getActivity())) {
-                 WifiCallUtils.showWifiCallDialog(getActivity());
-                 WifiCallUtils.showWifiCallNotification(getActivity());
-             } else {
-                 getView().performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
-                 handleDialButtonPressed();
-             }
+            if (!PhoneNumberUtils.isEmergencyNumber(mDigits.getText().toString()) &&
+                    WifiCallUtils.shallShowWifiCallDialog(getActivity())) {
+                WifiCallUtils.showWifiCallDialog(getActivity());
+                WifiCallUtils.showWifiCallNotification(getActivity());
+            } else {
+                getView().performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
+                handleDialButtonPressed();
+            }
         }
     }
 
