diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 1c1e9583851d5844eee9f158902acf7050c4e70c..376d5e65c7a2d6c7389f9354e4aea8d944806785 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -5607,10 +5607,10 @@ static void *pri_dchannel(void *vpri)
 							strcpy(pri->pvt[chan]->callerid, "");
 						strncpy(pri->pvt[chan]->rdnis, e->ring.redirectingnum, sizeof(pri->pvt[chan]->rdnis));
 					}
-					/* If immediate=yes go to s|1 */
-					if (pri->pvt[chan]->immediate) {
+					/* If immediate=yes or call complete go to s|1 */
+					if (pri->pvt[chan]->immediate || e->ring.complete) {
 						if (option_verbose > 2)
-							ast_verbose(VERBOSE_PREFIX_3 "Going to extension s|1 because of immediate=yes\n");
+							ast_verbose(VERBOSE_PREFIX_3 "Going to extension s|1 because of immediate=yes or Complete received\n");
 						strcpy(pri->pvt[chan]->exten, "s");
 					}
 					/* Get called number */