diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index a42edc7dd85b8b684715dfcc94ee4af3e083fe62..f9000590b7326f195e231b6c9d7b30511a034a3c 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -3494,13 +3494,13 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast)
 									chan = zt_new(p, AST_STATE_RESERVED, 0, SUB_THREEWAY, 0, 0);
 									if (p->zaptrcallerid) {
 										if (!p->origcid_num) {
-											p->origcid_num = malloc(strlen(p->origcid_num) + 1);
+											p->origcid_num = malloc(strlen(p->cid_num) + 1);
 											strncpy(p->origcid_num, p->cid_num, strlen(p->cid_num)); /* safe */
 											/* make sure p->origcallerid is terminated */
 											p->origcid_num[strlen(p->cid_num)] = '\0';
 										}
 										if (!p->origcid_name) {
-											p->origcid_name = malloc(strlen(p->origcid_name) + 1);
+											p->origcid_name = malloc(strlen(p->cid_name) + 1);
 											strncpy(p->origcid_name, p->cid_name, strlen(p->cid_name)); /* safe */
 											/* make sure p->origcallerid is terminated */
 											p->origcid_name[strlen(p->cid_name)] = '\0';