diff --git a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
index 2e5b0e1..4d3fb84 100644
--- a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
+++ b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
@@ -131,6 +131,13 @@
                     return;
                 }
 
+                // If this call is already disconnected then we have nothing more to do.
+                if (mCall.isDisconnected()) {
+                    Log.w(this,
+                        "Call has already been disconnected, ignore the broadcast Call %s", mCall);
+                    return;
+                }
+
                 Uri resultHandleUri = Uri.fromParts(
                         mPhoneNumberUtilsAdapter.isUriNumber(resultNumber) ?
                                 PhoneAccount.SCHEME_SIP : PhoneAccount.SCHEME_TEL,
diff --git a/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java b/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java
index 4428c34..a7d98db 100644
--- a/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java
+++ b/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java
@@ -127,6 +127,20 @@
     }
 
     @SmallTest
+    public void testAlreadyDisconnectedCall() {
+        Uri handle = Uri.parse("tel:6505551234");
+        doReturn(true).when(mCall).isDisconnected();
+        Intent callIntent = buildIntent(handle, Intent.ACTION_CALL, null);
+        ReceiverIntentPair result = regularCallTestHelper(callIntent, null);
+
+        result.receiver.setResultData(
+                result.intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER));
+
+        result.receiver.onReceive(mContext, result.intent);
+        verifyNoCallPlaced();
+    }
+
+    @SmallTest
     public void testNoNumberSupplied() {
         Uri handle = Uri.parse("tel:");
         Intent intent = new Intent(Intent.ACTION_CALL, handle);
