diff --git a/apps/app_dial.c b/apps/app_dial.c
index 0bf269a6836fb05b02dbc5b40b67163fe2bd9453..eeb9a97e5ef3bdd35fd31d646183e6b3d945d0a1 100755
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -762,6 +762,7 @@ static int dial_exec(struct ast_channel *chan, void *data)
 			/* If we can't, just go on to the next call */
 			ast_log(LOG_NOTICE, "Unable to create channel of type '%s'\n", tech);
 			HANDLE_CAUSE(cause, chan);
+			cur = rest;
 			continue;
 		}
 		if (!ast_strlen_zero(tmp->chan->call_forward)) {
@@ -787,6 +788,7 @@ static int dial_exec(struct ast_channel *chan, void *data)
 			if (!tmp->chan) {
 				ast_log(LOG_NOTICE, "Unable to create local channel for call forward to '%s/%s'\n", tech, stuff);
 				HANDLE_CAUSE(cause, chan);
+				cur = rest;
 				continue;
 			}
 		}