diff --git a/src/com/android/services/telephony/CdmaConnection.java b/src/com/android/services/telephony/CdmaConnection.java
index 4c869a9..19c750b 100644
--- a/src/com/android/services/telephony/CdmaConnection.java
+++ b/src/com/android/services/telephony/CdmaConnection.java
@@ -40,6 +40,7 @@
 
     private static final int MSG_CALL_WAITING_MISSED = 1;
     private static final int MSG_DTMF_SEND_CONFIRMATION = 2;
+    private static final int MSG_CDMA_LINE_CONTROL_INFO_REC = 3;
     private static final int TIMEOUT_CALL_WAITING_MILLIS = 20 * 1000;
 
     private final Handler mHandler = new Handler() {
@@ -54,6 +55,9 @@
                 case MSG_DTMF_SEND_CONFIRMATION:
                     handleBurstDtmfConfirmation();
                     break;
+                case MSG_CDMA_LINE_CONTROL_INFO_REC:
+                    handleCdmaConnectionTimeReset();
+                    break;
                 default:
                     break;
             }
@@ -72,6 +76,7 @@
     // Indicates that the DTMF confirmation from telephony is pending.
     private boolean mDtmfBurstConfirmationPending = false;
     private boolean mIsCallWaiting;
+    private boolean mIsConnectionTimeReset = false;
 
     CdmaConnection(
             Connection connection,
@@ -299,4 +304,33 @@
         mAllowMute = true;
         super.handleExitedEcmMode();
     }
+
+    private void handleCdmaConnectionTimeReset() {
+        boolean isImsCall = getOriginalConnection() instanceof ImsPhoneConnection;
+        if (!isImsCall && !mIsConnectionTimeReset && mIsOutgoing
+                && getOriginalConnection() != null
+                && getOriginalConnection().getState() == Call.State.ACTIVE
+                && getOriginalConnection().getDurationMillis() > 0) {
+            mIsConnectionTimeReset = true;
+            getOriginalConnection().resetConnectionTime();
+            resetConnectionTime();
+        }
+    }
+
+    @Override
+    void setOriginalConnection(com.android.internal.telephony.Connection originalConnection) {
+        super.setOriginalConnection(originalConnection);
+        if (getPhone() != null) {
+            getPhone().registerForLineControlInfo(mHandler, MSG_CDMA_LINE_CONTROL_INFO_REC, null);
+        }
+    }
+
+    @Override
+    protected void close() {
+        mIsConnectionTimeReset = false;
+        if (getPhone() != null) {
+            getPhone().unregisterForLineControlInfo(mHandler);
+        }
+        super.close();
+    }
 }
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index e7a4d1c..c7fc428 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -1676,7 +1676,7 @@
         setActive();
     }
 
-    private void close() {
+    protected void close() {
         Log.v(this, "close");
         clearOriginalConnection();
         destroy();
