diff --git a/channels/chan_local.c b/channels/chan_local.c
index 46015a14e1e41d6920c7978c75ea5198abef39e7..17d6b7f4be1eb0b7eb419da45e8a8d69bfe9c870 100644
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -453,6 +453,12 @@ static int local_call(struct ast_channel *ast, char *dest, int timeout)
 	
 	ast_mutex_lock(&p->lock);
 
+	/*
+	 * Note that cid_num and cid_name aren't passed in the ast_channel_alloc
+	 * call, so it's done here instead.
+	 */
+	p->chan->cid.cid_num = ast_strdup(p->owner->cid.cid_num);
+	p->chan->cid.cid_name = ast_strdup(p->owner->cid.cid_name);
 	p->chan->cid.cid_rdnis = ast_strdup(p->owner->cid.cid_rdnis);
 	p->chan->cid.cid_ani = ast_strdup(p->owner->cid.cid_ani);
 	p->chan->cid.cid_pres = p->owner->cid.cid_pres;