diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 14572bb933e8db7c8a93a7805519bad4b3c02986..da862ebefcaea6fc0b5fc04b6182e6e98d4d81ed 100644
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -959,7 +959,7 @@ static struct ast_channel *agent_new(struct agent_pvt *p, int state)
 			ast_mutex_unlock(&p->lock);     /* For other thread to read the condition. */
 			return NULL;
 		}	
-	}
+	} else if (p->chan)
 		ast_indicate(p->chan, AST_CONTROL_UNHOLD);
 	p->owning_app = pthread_self();
 	/* After the above step, there should not be any blockers. */