diff --git a/java/com/android/dialer/calllog/ui/menu/Modules.java b/java/com/android/dialer/calllog/ui/menu/Modules.java
index 94da6ec..2f6c1fb 100644
--- a/java/com/android/dialer/calllog/ui/menu/Modules.java
+++ b/java/com/android/dialer/calllog/ui/menu/Modules.java
@@ -19,8 +19,6 @@
 import android.content.Context;
 import android.provider.CallLog.Calls;
 import android.support.v4.os.BuildCompat;
-import android.telecom.PhoneAccount;
-import android.telecom.PhoneAccountHandle;
 import android.text.TextUtils;
 import com.android.dialer.blockreportspam.BlockReportSpamDialogInfo;
 import com.android.dialer.calldetails.CallDetailsActivity;
@@ -41,7 +39,6 @@
 import com.android.dialer.historyitemactions.SharedModules;
 import com.android.dialer.logging.ReportingLocation;
 import com.android.dialer.phonenumberutil.PhoneNumberHelper;
-import com.android.dialer.telecom.TelecomUtil;
 import com.android.dialer.util.CallUtil;
 import com.google.common.base.Optional;
 import java.util.ArrayList;
@@ -134,23 +131,16 @@
             .flattenToString()
             .equals(row.getPhoneAccountComponentName());
 
-    // Obtain a PhoneAccountHandle that will be used to start carrier voice/video calls.
-    // If the row is for a Duo call, we should use the default phone account as the one included in
-    // the row is for Duo only.
-    PhoneAccountHandle phoneAccountHandle =
-        isDuoCall
-            ? TelecomUtil.getDefaultOutgoingPhoneAccount(context, PhoneAccount.SCHEME_TEL)
-            : TelecomUtil.composePhoneAccountHandle(
-                row.getPhoneAccountComponentName(), row.getPhoneAccountId());
-
     List<HistoryItemActionModule> modules = new ArrayList<>();
 
     // Add an audio call item
     // TODO(zachh): Support post-dial digits; consider using DialerPhoneNumber.
     CallIntentBuilder callIntentBuilder =
         new CallIntentBuilder(normalizedNumber, CallInitiationType.Type.CALL_LOG)
-            .setPhoneAccountHandle(phoneAccountHandle)
             .setAllowAssistedDial(canSupportAssistedDialing(row));
+    // Leave PhoneAccountHandle blank so regular PreCall logic will be used. The account the call
+    // was made/received in should be ignored for audio and carrier video calls.
+    // TODO(a bug): figure out the correct video call behavior
     modules.add(IntentModule.newCallModule(context, callIntentBuilder));
 
     // If the call log entry is for a spam call, nothing more to be done.
diff --git a/java/com/android/dialer/calllogutils/CallLogRowActions.java b/java/com/android/dialer/calllogutils/CallLogRowActions.java
index 2090fc3..d23a15f 100644
--- a/java/com/android/dialer/calllogutils/CallLogRowActions.java
+++ b/java/com/android/dialer/calllogutils/CallLogRowActions.java
@@ -21,7 +21,6 @@
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.calllog.model.CoalescedRow;
 import com.android.dialer.precall.PreCall;
-import com.android.dialer.telecom.TelecomUtil;
 
 /** Actions which can be performed on a call log row. */
 public final class CallLogRowActions {
@@ -38,9 +37,6 @@
         activity,
         new CallIntentBuilder(
                 row.getNumber().getNormalizedNumber(), CallInitiationType.Type.CALL_LOG)
-            .setPhoneAccountHandle(
-                TelecomUtil.composePhoneAccountHandle(
-                    row.getPhoneAccountComponentName(), row.getPhoneAccountId()))
             .setIsVideoCall((row.getFeatures() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO));
   }
 }
