diff --git a/openbsc/src/osmo-bsc/osmo_bsc_api.c b/openbsc/src/osmo-bsc/osmo_bsc_api.c
index 6bda3d4..2c661b3 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_api.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_api.c
@@ -167,7 +167,7 @@
 	/* Advanced ping/pong handling */
 	if (osmo_timer_pending(&msc->pong_timer))
 		send_ping = 0;
-	if (msc->ping_timeout == 0)
+	if (msc->ping_timeout <= 0)
 		send_ping = 0;
 	if (send_ping && osmo_timer_remaining(&msc->ping_timer, NULL, &tv) == -1)
 		send_ping = 0;
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_msc.c b/openbsc/src/osmo-bsc/osmo_bsc_msc.c
index 5f2c1c5..e762cdd 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_msc.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_msc.c
@@ -346,7 +346,7 @@
 static void msc_ping_timeout_cb(void *_data)
 {
 	struct osmo_msc_data *data = (struct osmo_msc_data *) _data;
-	if (data->ping_timeout < 0)
+	if (data->ping_timeout <= 0)
 		return;
 
 	send_ping(data);
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_vty.c b/openbsc/src/osmo-bsc/osmo_bsc_vty.c
index ed4b05e..4d5a55d 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_vty.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_vty.c
@@ -110,12 +110,17 @@
 		vty_out(vty, " core-mobile-country-code %d%s",
 			msc->core_mcc, VTY_NEWLINE);
 	vty_out(vty, " ip.access rtp-base %d%s", msc->rtp_base, VTY_NEWLINE);
-	vty_out(vty, " timeout-ping %d%s", msc->ping_timeout, VTY_NEWLINE);
-	vty_out(vty, " timeout-pong %d%s", msc->pong_timeout, VTY_NEWLINE);
-	if (msc->advanced_ping)
-		vty_out(vty, " timeout-ping advanced%s", VTY_NEWLINE);
-	else
-		vty_out(vty, " no timeout-ping advanced%s", VTY_NEWLINE);
+
+	if (msc->ping_timeout == -1)
+		vty_out(vty, " no timeout-ping%s", VTY_NEWLINE);
+	else {
+		vty_out(vty, " timeout-ping %d%s", msc->ping_timeout, VTY_NEWLINE);
+		vty_out(vty, " timeout-pong %d%s", msc->pong_timeout, VTY_NEWLINE);
+		if (msc->advanced_ping)
+			vty_out(vty, " timeout-ping advanced%s", VTY_NEWLINE);
+		else
+			vty_out(vty, " no timeout-ping advanced%s", VTY_NEWLINE);
+	}
 
 	if (msc->ussd_welcome_txt)
 		vty_out(vty, " bsc-welcome-text %s%s", msc->ussd_welcome_txt, VTY_NEWLINE);
@@ -355,6 +360,16 @@
 	return CMD_SUCCESS;
 }
 
+DEFUN(cfg_net_msc_no_ping_time,
+      cfg_net_msc_no_ping_time_cmd,
+      "no timeout-ping",
+      NO_STR "Disable the ping/pong handling on A-link\n")
+{
+	struct osmo_msc_data *data = osmo_msc_data(vty);
+	data->ping_timeout = -1;
+	return CMD_SUCCESS;
+}
+
 DEFUN(cfg_net_msc_ping_time,
       cfg_net_msc_ping_time_cmd,
       "timeout-ping <1-2147483647>",
@@ -382,6 +397,13 @@
       "Ping timeout handling\nEnable advanced mode during SCCP\n")
 {
 	struct osmo_msc_data *data = osmo_msc_data(vty);
+
+	if (data->ping_timeout == -1) {
+		vty_out(vty, "%%ping handling is disabled. Enable it first.%s",
+			VTY_NEWLINE);
+		return CMD_WARNING;
+	}
+
 	data->advanced_ping = 1;
 	return CMD_SUCCESS;
 }
@@ -741,6 +763,7 @@
 	install_element(MSC_NODE, &cfg_net_bsc_codec_list_cmd);
 	install_element(MSC_NODE, &cfg_net_msc_dest_cmd);
 	install_element(MSC_NODE, &cfg_net_msc_no_dest_cmd);
+	install_element(MSC_NODE, &cfg_net_msc_no_ping_time_cmd);
 	install_element(MSC_NODE, &cfg_net_msc_ping_time_cmd);
 	install_element(MSC_NODE, &cfg_net_msc_pong_time_cmd);
 	install_element(MSC_NODE, &cfg_net_msc_advanced_ping_cmd);
