diff --git a/src/com/android/incallui/DialpadFragment.java b/src/com/android/incallui/DialpadFragment.java
index abe8fb9..371f5c5 100644
--- a/src/com/android/incallui/DialpadFragment.java
+++ b/src/com/android/incallui/DialpadFragment.java
@@ -361,7 +361,7 @@
     public boolean onKey(View v, int keyCode, KeyEvent event) {
         Log.d(this, "onKey:  keyCode " + keyCode + ", view " + v);
 
-        if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
+        if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) {
             int viewId = v.getId();
             if (mDisplayMap.containsKey(viewId)) {
                 switch (event.getAction()) {
diff --git a/src/com/android/incallui/PostCharDialogFragment.java b/src/com/android/incallui/PostCharDialogFragment.java
index 09b626a..400e8d7 100644
--- a/src/com/android/incallui/PostCharDialogFragment.java
+++ b/src/com/android/incallui/PostCharDialogFragment.java
@@ -29,9 +29,15 @@
  */
 public class PostCharDialogFragment extends DialogFragment {
 
+    private static final String STATE_CALL_ID = "CALL_ID";
+    private static final String STATE_POST_CHARS = "POST_CHARS";
+
     private String mCallId;
     private String mPostDialStr;
 
+    public PostCharDialogFragment() {
+    }
+
     public PostCharDialogFragment(String callId, String postDialStr) {
         mCallId = callId;
         mPostDialStr = postDialStr;
@@ -41,6 +47,11 @@
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         super.onCreateDialog(savedInstanceState);
 
+        if (mPostDialStr == null && savedInstanceState != null) {
+            mCallId = savedInstanceState.getString(STATE_CALL_ID);
+            mPostDialStr = savedInstanceState.getString(STATE_POST_CHARS);
+        }
+
         final StringBuilder buf = new StringBuilder();
         buf.append(getResources().getText(R.string.wait_prompt_str));
         buf.append(mPostDialStr);
@@ -71,4 +82,12 @@
 
         TelecomAdapter.getInstance().postDialContinue(mCallId, false);
     }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+
+        outState.putString(STATE_CALL_ID, mCallId);
+        outState.putString(STATE_POST_CHARS, mPostDialStr);
+    }
 }
