diff --git a/src/com/android/server/telecom/Call.java b/src/com/android/server/telecom/Call.java
index 3e66426..d3eddb5 100644
--- a/src/com/android/server/telecom/Call.java
+++ b/src/com/android/server/telecom/Call.java
@@ -392,7 +392,18 @@
     void setState(int newState) {
         if (mState != newState) {
             Log.v(this, "setState %s -> %s", mState, newState);
-            int oldState = mState;
+
+            if (newState == CallState.DISCONNECTED
+                    && (mState == CallState.DIALING || mState == CallState.CONNECTING)
+                    && mCreateConnectionProcessor != null
+                    && mCreateConnectionProcessor.isProcessingComplete()
+                    && mCreateConnectionProcessor.hasMorePhoneAccounts()
+                    && mDisconnectCause != null
+                    && mDisconnectCause.getCode() == DisconnectCause.ERROR) {
+                mCreateConnectionProcessor.continueProcessingIfPossible(this, mDisconnectCause);
+                return;
+            }
+
             mState = newState;
             maybeLoadCannedSmsResponses();
 
@@ -410,14 +421,6 @@
                 mDisconnectTimeMillis = System.currentTimeMillis();
                 setLocallyDisconnecting(false);
                 fixParentAfterDisconnect();
-                if ((oldState == CallState.DIALING || oldState == CallState.CONNECTING)
-                        && mCreateConnectionProcessor != null
-                        && mCreateConnectionProcessor.isProcessingComplete()
-                        && mCreateConnectionProcessor.hasMorePhoneAccounts()
-                        && mDisconnectCause != null
-                        && mDisconnectCause.getCode() == DisconnectCause.ERROR) {
-                    mCreateConnectionProcessor.continueProcessingIfPossible(this, mDisconnectCause);
-                }
             }
         }
     }
