diff --git a/common/src/com/android/services/telephony/common/ICallCommandService.aidl b/common/src/com/android/services/telephony/common/ICallCommandService.aidl
index 5969575..b13f98a 100644
--- a/common/src/com/android/services/telephony/common/ICallCommandService.aidl
+++ b/common/src/com/android/services/telephony/common/ICallCommandService.aidl
@@ -87,4 +87,8 @@
      * {@see AudioMode}
      */
     void setAudioMode(int mode);
+
+    void postDialCancel(int callId);
+
+    void postDialWaitContinue(int callId);
 }
diff --git a/common/src/com/android/services/telephony/common/ICallHandlerService.aidl b/common/src/com/android/services/telephony/common/ICallHandlerService.aidl
index 5eddb0e..4fbc8b8 100644
--- a/common/src/com/android/services/telephony/common/ICallHandlerService.aidl
+++ b/common/src/com/android/services/telephony/common/ICallHandlerService.aidl
@@ -67,4 +67,6 @@
      * Called when the system wants to bring the in-call UI into the foreground.
      */
     void bringToForeground();
+
+    void onPostDialWait(int callId, String remainingChars);
 }
diff --git a/src/com/android/phone/BluetoothManager.java b/src/com/android/phone/BluetoothManager.java
index dd38632..c2b4f7d 100644
--- a/src/com/android/phone/BluetoothManager.java
+++ b/src/com/android/phone/BluetoothManager.java
@@ -27,8 +27,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.os.Handler;
-import android.os.Message;
 import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.util.Log;
@@ -36,7 +34,6 @@
 import com.android.internal.telephony.CallManager;
 import com.android.services.telephony.common.Call;
 
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -419,6 +416,11 @@
         updateBluetoothIndication();
     }
 
+    @Override
+    public void onPostDialWait(int callId, String chars) {
+        // no-op
+    }
+
     private void log(String msg) {
         Log.d(LOG_TAG, msg);
     }
diff --git a/src/com/android/phone/CallCommandService.java b/src/com/android/phone/CallCommandService.java
index 72273ee..aaa3190 100644
--- a/src/com/android/phone/CallCommandService.java
+++ b/src/com/android/phone/CallCommandService.java
@@ -220,4 +220,20 @@
             Log.e(TAG, "Error setting the audio mode.", e);
         }
     }
+
+    @Override
+    public void postDialCancel(int callId) throws RemoteException {
+        final CallResult result = mCallModeler.getCallWithId(callId);
+        if (result != null) {
+            result.getConnection().cancelPostDial();
+        }
+    }
+
+    @Override
+    public void postDialWaitContinue(int callId) throws RemoteException {
+        final CallResult result = mCallModeler.getCallWithId(callId);
+        if (result != null) {
+            result.getConnection().proceedAfterWaitChar();
+        }
+    }
 }
diff --git a/src/com/android/phone/CallHandlerServiceProxy.java b/src/com/android/phone/CallHandlerServiceProxy.java
index a57ac5b..4820b33 100644
--- a/src/com/android/phone/CallHandlerServiceProxy.java
+++ b/src/com/android/phone/CallHandlerServiceProxy.java
@@ -192,6 +192,26 @@
         }
     }
 
+
+    @Override
+    public void onPostDialWait(int callId, String remainingChars) {
+        try {
+            synchronized (mServiceAndQueueLock) {
+                if (mCallHandlerServiceGuarded == null) {
+                    if (DBG) {
+                        Log.d(TAG, "CallHandlerService not conneccted. Skipping "
+                                + "onPostDialWait().");
+                    }
+                    return;
+                }
+            }
+
+            mCallHandlerServiceGuarded.onPostDialWait(callId, remainingChars);
+        } catch (Exception e) {
+            Log.e(TAG, "Remote exception handling onUpdate", e);
+        }
+    }
+
     @Override
     public void onAudioModeChange(int newMode, boolean muted) {
         try {
diff --git a/src/com/android/phone/CallModeler.java b/src/com/android/phone/CallModeler.java
index 9c7b9dd..502f2cb 100644
--- a/src/com/android/phone/CallModeler.java
+++ b/src/com/android/phone/CallModeler.java
@@ -16,7 +16,6 @@
 
 package com.android.phone;
 
-import android.content.Context;
 import android.os.AsyncResult;
 import android.os.Handler;
 import android.os.Message;
@@ -114,6 +113,9 @@
             case CallStateMonitor.PHONE_STATE_CHANGED:
                 onPhoneStateChanged((AsyncResult) msg.obj);
                 break;
+            case CallStateMonitor.PHONE_ON_DIAL_CHARS:
+                onPostDialChars((AsyncResult) msg.obj, (char) msg.arg1);
+                break;
             default:
                 break;
         }
@@ -192,6 +194,41 @@
         return false;
     }
 
+
+    /**
+     * Handles the POST_ON_DIAL_CHARS message from the Phone (see our call to
+     * mPhone.setOnPostDialCharacter() above.)
+     *
+     * TODO: NEED TO TEST THIS SEQUENCE now that we no longer handle "dialable" key events here in
+     * the InCallScreen: we do directly to the Dialer UI instead.  Similarly, we may now need to go
+     * directly to the Dialer to handle POST_ON_DIAL_CHARS too.
+     */
+    private void onPostDialChars(AsyncResult r, char ch) {
+        final Connection c = (Connection) r.result;
+
+        if (c != null) {
+            final Connection.PostDialState state = (Connection.PostDialState) r.userObj;
+
+            switch (state) {
+                // TODO(klp): add other post dial related functions
+                case WAIT:
+                    final Call call = getCallFromMap(mCallMap, c, false);
+                    if (call == null) {
+                        Log.i(TAG, "Call no longer exists. Skipping onPostDialWait().");
+                    } else {
+                        for (Listener mListener : mListeners) {
+                            mListener.onPostDialWait(call.getCallId(),
+                                    c.getRemainingPostDialString());
+                        }
+                    }
+                    break;
+
+                default:
+                    break;
+            }
+        }
+    }
+
     private void onNewRingingConnection(AsyncResult r) {
         Log.i(TAG, "onNewRingingConnection");
         final Connection conn = (Connection) r.result;
@@ -686,6 +723,7 @@
         void onDisconnect(Call call);
         void onIncoming(Call call);
         void onUpdate(List<Call> calls);
+        void onPostDialWait(int callId, String remainingChars);
     }
 
     /**
diff --git a/src/com/android/phone/CallStateMonitor.java b/src/com/android/phone/CallStateMonitor.java
index 6152277..3e9ff5d 100644
--- a/src/com/android/phone/CallStateMonitor.java
+++ b/src/com/android/phone/CallStateMonitor.java
@@ -56,6 +56,7 @@
     public static final int PHONE_ENHANCED_VP_OFF = 10;
     public static final int PHONE_RINGBACK_TONE = 11;
     public static final int PHONE_RESEND_MUTE = 12;
+    public static final int PHONE_ON_DIAL_CHARS = 13;
 
     // Other events from call manager
     public static final int EVENT_OTA_PROVISION_CHANGE = 20;
@@ -88,6 +89,7 @@
         callManager.registerForInCallVoicePrivacyOff(this, PHONE_ENHANCED_VP_OFF, null);
         callManager.registerForRingbackTone(this, PHONE_RINGBACK_TONE, null);
         callManager.registerForResendIncallMute(this, PHONE_RESEND_MUTE, null);
+        callManager.registerForPostDialCharacter(this, PHONE_ON_DIAL_CHARS, null);
     }
 
     public void addListener(Handler handler) {
@@ -131,6 +133,7 @@
         callManager.unregisterForResendIncallMute(this);
         callManager.unregisterForInCallVoicePrivacyOn(this);
         callManager.unregisterForInCallVoicePrivacyOff(this);
+        callManager.unregisterForPostDialCharacter(this);
 
         registerForNotifications();
     }
diff --git a/src/com/android/phone/DTMFTonePlayer.java b/src/com/android/phone/DTMFTonePlayer.java
index d3ed53e..0acd114 100644
--- a/src/com/android/phone/DTMFTonePlayer.java
+++ b/src/com/android/phone/DTMFTonePlayer.java
@@ -31,8 +31,6 @@
 import com.android.internal.telephony.PhoneConstants;
 import com.android.services.telephony.common.Call;
 
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -125,6 +123,11 @@
         checkCallState();
     }
 
+    @Override
+    public void onPostDialWait(int callId, String chars) {
+        // no-op
+    }
+
     /**
      * Allocates some resources we keep around during a "dialer session".
      *
