diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index b58036c0fb268efb0617c6529c1bb5f555822f87..c3bc2b38ddd46009c54116c0cba99915ee7b3487 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -2590,7 +2590,7 @@ static int __find_callno(unsigned short callno, unsigned short dcallno, struct s
 			}
 			/* this searches for transfer call numbers that might not get caught otherwise */
 			memset(&tmp_pvt.addr, 0, sizeof(tmp_pvt.addr));
-			memcpy(&tmp_pvt.transfer, sin, sizeof(tmp_pvt.addr));
+			memcpy(&tmp_pvt.transfer, sin, sizeof(tmp_pvt.transfer));
 			if ((pvt = ao2_find(iax_transfercallno_pvts, &tmp_pvt, OBJ_POINTER))) {
 				if (return_locked) {
 					ast_mutex_lock(&iaxsl[pvt->callno]);