diff --git a/apps/app_queue.c b/apps/app_queue.c
index 5848bb2e1a540357bc383841d2cdbeebb1d483fe..d0b6affc0e2caabc6a8a70da660f25e4354d2bf4 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -2079,8 +2079,10 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
 
 	starttime = (long) time(NULL);
 #ifdef HAVE_EPOLL
-	for (epollo = outgoing; epollo; epollo = epollo->q_next)
-		ast_poll_channel_add(in, epollo->chan);
+	for (epollo = outgoing; epollo; epollo = epollo->q_next) {
+		if(epollo->chan)
+			ast_poll_channel_add(in, epollo->chan);
+	}
 #endif
 	
 	while (*to && !peer) {
@@ -2287,8 +2289,10 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
 	}
 
 #ifdef HAVE_EPOLL
-	for(epollo = outgoing; epollo; epollo = epollo->q_next)
-		ast_poll_channel_del(in, epollo->chan);
+	for(epollo = outgoing; epollo; epollo = epollo->q_next) {
+		if(epollo->chan)
+			ast_poll_channel_del(in, epollo->chan);
+	}
 #endif
 
 	return peer;