diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 9b6e2ff462959c23e802c5d231bb1f5f47428c80..58f52f496107cd34d43d52991f689962bdc866b0 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -1149,10 +1149,9 @@ static void __send_ping(const void *data)
 	ast_mutex_lock(&iaxsl[callno]);
 
 	while (iaxs[callno] && iaxs[callno]->pingid != -1) {
-		if (!iaxs[callno]->peercallno) {
-			break;
+		if (iaxs[callno]->peercallno) {
+			send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_PING, 0, NULL, 0, -1);
 		}
-		send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_PING, 0, NULL, 0, -1);
 		iaxs[callno]->pingid = iax2_sched_add(sched, ping_time * 1000, send_ping, data);
 		break;
 	}
@@ -1190,10 +1189,9 @@ static void __send_lagrq(const void *data)
 	ast_mutex_lock(&iaxsl[callno]);
 
 	while (iaxs[callno] && iaxs[callno]->lagid > -1) {
-		if (!iaxs[callno]->peercallno) {
-			break;
+		if (iaxs[callno]->peercallno) {
+			send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_LAGRQ, 0, NULL, 0, -1);
 		}
-		send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_LAGRQ, 0, NULL, 0, -1);
 		iaxs[callno]->lagid = iax2_sched_add(sched, lagrq_time * 1000, send_lagrq, data);
 		break;
 	}