diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 8550a3941dade79c5d8fde617f5740c4abe259e0..3895ddd2e1151962ba46586e498ff25da895ee1a 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -414,6 +414,17 @@ static struct ast_frame *agent_read(struct ast_channel *ast)
 	return f;
 }
 
+static int agent_sendhtml(struct ast_channel *ast, int subclass, char *data, int datalen)
+{
+	struct agent_pvt *p = ast->pvt->pvt;
+	int res = -1;
+	ast_mutex_lock(&p->lock);
+	if (p->chan) 
+		res = ast_channel_sendhtml(p->chan, subclass, data, datalen);
+	ast_mutex_unlock(&p->lock);
+	return res;
+}
+
 static int agent_write(struct ast_channel *ast, struct ast_frame *f)
 {
 	struct agent_pvt *p = ast->pvt->pvt;
@@ -816,6 +827,7 @@ static struct ast_channel *agent_new(struct agent_pvt *p, int state)
 		tmp->pvt->answer = agent_answer;
 		tmp->pvt->read = agent_read;
 		tmp->pvt->write = agent_write;
+		tmp->pvt->send_html = agent_sendhtml;
 		tmp->pvt->exception = agent_read;
 		tmp->pvt->indicate = agent_indicate;
 		tmp->pvt->fixup = agent_fixup;