diff --git a/res/layout/crypt_keeper_password_entry.xml b/res/layout/crypt_keeper_password_entry.xml
index 4dce67a..a5193ce 100644
--- a/res/layout/crypt_keeper_password_entry.xml
+++ b/res/layout/crypt_keeper_password_entry.xml
@@ -30,39 +30,16 @@
                >
        <include layout="@layout/crypt_keeper_status" />
    </LinearLayout>
-   
-   <!-- right side: password -->
-   <LinearLayout
+
+   <EditText android:id="@+id/passwordEntry"
+       android:layout_height="wrap_content"
        android:layout_width="match_parent"
-       android:layout_height="match_parent"
-       android:orientation="vertical"
-       android:gravity="center">
+       android:singleLine="true"
+       android:textStyle="normal"
+       android:inputType="textPassword"
+       android:textSize="24sp"
+       android:textAppearance="?android:attr/textAppearanceMedium"
+       android:textColor="#ffffffff"
+    />
 
-       <!-- Password entry field -->
-       <EditText android:id="@+id/passwordEntry"
-           android:layout_height="wrap_content"
-           android:layout_width="450dip"
-           android:singleLine="true"
-           android:textStyle="normal"
-           android:inputType="textPassword"
-           android:gravity="center"
-           android:layout_gravity="center"
-           android:textSize="24sp"
-           android:layout_marginTop="120dip"
-           android:layout_marginBottom="5dip"
-           android:textAppearance="?android:attr/textAppearanceMedium"
-           android:textColor="#ffffffff"
-           android:editable="false"
-        />
-
-       <com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard"
-           android:layout_width="450dip"
-           android:layout_height="230dip"
-           android:background="#00000000"
-           android:keyBackground="@*android:drawable/btn_keyboard_key_fulltrans"
-           android:visibility="visible"
-       />
-       
-   </LinearLayout>
-    
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/crypt_keeper_progress.xml b/res/layout/crypt_keeper_progress.xml
index 7c6c363..f8e3a1a 100644
--- a/res/layout/crypt_keeper_progress.xml
+++ b/res/layout/crypt_keeper_progress.xml
@@ -54,11 +54,11 @@
     
     
     <TextView
+        android:id="@+id/status"
         android:layout_width="match_parent"
         android:layout_height="0dip"
         android:layout_weight="1"
         android:layout_marginLeft="16dip"
-        android:text="@string/crypt_keeper_setup_description"
     />
 
 </LinearLayout>
diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java
index edf00d5..20bf7ce 100644
--- a/src/com/android/settings/CryptKeeper.java
+++ b/src/com/android/settings/CryptKeeper.java
@@ -342,9 +342,11 @@
 
         KeyboardView keyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard);
 
-        PasswordEntryKeyboardHelper keyboardHelper = new PasswordEntryKeyboardHelper(this,
-                keyboardView, mPasswordEntry, false);
-        keyboardHelper.setKeyboardMode(PasswordEntryKeyboardHelper.KEYBOARD_MODE_ALPHA);
+        if (keyboardView != null) {
+            PasswordEntryKeyboardHelper keyboardHelper = new PasswordEntryKeyboardHelper(this,
+                    keyboardView, mPasswordEntry, false);
+            keyboardHelper.setKeyboardMode(PasswordEntryKeyboardHelper.KEYBOARD_MODE_ALPHA);
+        }
     }
 
     private IMountService getMountService() {
@@ -357,7 +359,7 @@
 
     @Override
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-        if (actionId == EditorInfo.IME_NULL) {
+        if (actionId == EditorInfo.IME_NULL || actionId == EditorInfo.IME_ACTION_DONE) {
             // Get the password
             String password = v.getText().toString();
 
diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java
index ba8ce10..d177cb4 100644
--- a/src/com/android/settings/CryptKeeperConfirm.java
+++ b/src/com/android/settings/CryptKeeperConfirm.java
@@ -62,6 +62,8 @@
                 public void run() {
                     IBinder service = ServiceManager.getService("mount");
                     if (service == null) {
+                        Log.e("CryptKeeper", "Failed to find the mount service");
+                        finish();
                         return;
                     }
 
