diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 6fad93b45312934e9061a433ae99df8ded4c5698..8949714a181476cf651e4129d85aeee79245c7c4 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -9483,9 +9483,11 @@ static int function_iaxpeer(struct ast_channel *chan, char *cmd, char *data, cha
 	struct iax2_peer *peer;
 	char *peername, *colname;
 
-	if (!(peername = ast_strdupa(data)))
+	if (chan->tech != &iax2_tech)
 		return -1;
 
+	peername = ast_strdupa(data);
+
 	/* if our channel, return the IP address of the endpoint of current channel */
 	if (!strcmp(peername,"CURRENTCHANNEL")) {
 	        unsigned short callno = PTR_TO_CALLNO(chan->tech_pvt);