diff --git a/res/layout-sw600dp/confirm_lock_password.xml b/res/layout-sw600dp/confirm_lock_password.xml
index 7ccf330..8230ed2 100644
--- a/res/layout-sw600dp/confirm_lock_password.xml
+++ b/res/layout-sw600dp/confirm_lock_password.xml
@@ -16,8 +16,7 @@
   -->
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingTop="48dp">
+    android:layout_height="match_parent">
 
     <include layout="@layout/confirm_lock_password_base"
         android:layout_width="match_parent"
diff --git a/res/layout/confirm_lock_password_base.xml b/res/layout/confirm_lock_password_base.xml
index d92f4f1..b104f07 100644
--- a/res/layout/confirm_lock_password_base.xml
+++ b/res/layout/confirm_lock_password_base.xml
@@ -26,7 +26,8 @@
         android:orientation="vertical"
         android:layout_width="@dimen/confirm_credentials_layout_width"
         android:layout_height="match_parent"
-        android:layout_gravity="top|center_horizontal">
+        android:layout_gravity="top|center_horizontal"
+        android:paddingTop="@dimen/confirm_credentials_top_padding">
 
         <TextView
             style="@android:style/TextAppearance.Material.Headline"
diff --git a/res/layout/confirm_lock_pattern_base.xml b/res/layout/confirm_lock_pattern_base.xml
index ed53fae..c188ccf 100644
--- a/res/layout/confirm_lock_pattern_base.xml
+++ b/res/layout/confirm_lock_pattern_base.xml
@@ -26,7 +26,8 @@
         android:orientation="vertical"
         android:layout_width="@dimen/confirm_credentials_layout_width"
         android:layout_height="match_parent"
-        android:layout_gravity="top|center_horizontal">
+        android:layout_gravity="top|center_horizontal"
+        android:paddingTop="@dimen/confirm_credentials_top_padding">
 
         <TextView
             style="@android:style/TextAppearance.Material.Headline"
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index e3c748a..7fef6f4 100755
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -74,5 +74,6 @@
 
     <dimen name="confirm_credentials_security_method_margin">72dp</dimen>
     <dimen name="confirm_credentials_layout_width">328dp</dimen>
+    <dimen name="confirm_credentials_top_padding">48dp</dimen>
     <dimen name="fab_margin">24dp</dimen>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index d302d6d..9d4a97c 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -235,6 +235,7 @@
 
     <dimen name="confirm_credentials_security_method_margin">48dp</dimen>
     <dimen name="confirm_credentials_layout_width">@dimen/match_parent</dimen>
+    <dimen name="confirm_credentials_top_padding">0dp</dimen>
     <dimen name="fab_size">56dp</dimen>
     <dimen name="fab_margin">16dp</dimen>
     <dimen name="fab_elevation">12dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 09cfa15..5fa5bf5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5392,10 +5392,6 @@
     <string name="user_exit_guest_confirm_message">All apps and data in this session will be deleted.</string>
     <!-- Label for button in confirmation dialog when exiting guest session [CHAR LIMIT=35] -->
     <string name="user_exit_guest_dialog_remove">Remove</string>
-    <!-- Message of dialog to user to confirm that he understands that emergency information is shown in emergency dialer [CHAR LIMIT=none] -->
-    <string name="user_emergency_info_consent">Information you enter here can help first responders in an emergency. It is stored on your device only, but anyone can read it from the emergency dialer without unlocking your phone.</string>
-    <!-- Label for button in confirmation dialog when the user clicks on emergency information [CHAR LIMIT=35] -->
-    <string name="emergency_info_continue">Continue</string>
 
     <!-- Title of preference to enable calling[CHAR LIMIT=40] -->
     <string name="user_enable_calling">Turn on phone calls</string>
diff --git a/src/com/android/settings/CredentialCheckResultTracker.java b/src/com/android/settings/CredentialCheckResultTracker.java
index 179a93c..cfd6f29 100644
--- a/src/com/android/settings/CredentialCheckResultTracker.java
+++ b/src/com/android/settings/CredentialCheckResultTracker.java
@@ -61,6 +61,7 @@
         if (mListener != null) {
             mListener.onCredentialChecked(mResultMatched, mResultData, mResultTimeoutMs,
                     mResultEffectiveUserId, true /* newResult */);
+            mHasResult = false;
         }
     }
 
diff --git a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
index 1eea942..e6fcbcb 100644
--- a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
+++ b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
@@ -181,6 +181,7 @@
 
         if (preference == null) {
             preference = new BluetoothDevicePreference(getPrefContext(), cachedDevice);
+            preference.setKey(key);
             mDeviceListGroup.addPreference(preference);
         } else {
             // Tell the preference it is being re-used in case there is new info in the
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index d29e612..1c0260f 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -115,7 +115,6 @@
     private static final int DIALOG_NEED_LOCKSCREEN = 7;
     private static final int DIALOG_CONFIRM_EXIT_GUEST = 8;
     private static final int DIALOG_USER_PROFILE_EDITOR = 9;
-    private static final int DIALOG_EMERGENCY_INFO_CONSENT = 10;
 
     private static final int MESSAGE_UPDATE_LIST = 1;
     private static final int MESSAGE_SETUP_USER = 2;
@@ -609,22 +608,6 @@
                         android.os.Process.myUserHandle());
                 return dlg;
             }
-            case DIALOG_EMERGENCY_INFO_CONSENT : {
-                Dialog dlg = new AlertDialog.Builder(context)
-                        .setTitle(R.string.emergency_info_title)
-                        .setMessage(R.string.user_emergency_info_consent)
-                        .setPositiveButton(R.string.emergency_info_continue,
-                                new DialogInterface.OnClickListener() {
-                                    @Override
-                                    public void onClick(DialogInterface dialog, int which) {
-                                        Intent intent = new Intent(ACTION_EDIT_EMERGENCY_INFO);
-                                        startActivity(intent);
-                                    }
-                                })
-                        .setNegativeButton(android.R.string.cancel, null)
-                        .create();
-                return dlg;
-            }
             default:
                 return null;
         }
@@ -966,7 +949,8 @@
                 onAddUserClicked(USER_TYPE_USER);
             }
         } else if (pref == mEmergencyInfoPreference) {
-            showDialog(DIALOG_EMERGENCY_INFO_CONSENT);
+            Intent intent = new Intent(ACTION_EDIT_EMERGENCY_INFO);
+            startActivity(intent);
         }
         return false;
     }
