diff --git a/openbsc/include/openbsc/vty.h b/openbsc/include/openbsc/vty.h
index ad2cd2a..f79eab5 100644
--- a/openbsc/include/openbsc/vty.h
+++ b/openbsc/include/openbsc/vty.h
@@ -44,7 +44,7 @@
 extern void bsc_replace_string(void *ctx, char **dst, const char *newstr);
 
 struct log_info;
-int bsc_vty_init(const struct log_info *cat, struct gsm_network *network);
+int bsc_vty_init(struct gsm_network *network);
 int bsc_vty_init_extra(void);
 
 struct gsm_network *gsmnet_from_vty(struct vty *vty);
diff --git a/openbsc/src/gprs/gb_proxy_main.c b/openbsc/src/gprs/gb_proxy_main.c
index 04875c7..69a93b6 100644
--- a/openbsc/src/gprs/gb_proxy_main.c
+++ b/openbsc/src/gprs/gb_proxy_main.c
@@ -241,7 +241,7 @@
 
 	vty_info.copyright = openbsc_copyright;
 	vty_init(&vty_info);
-	logging_vty_add_cmds(&gprs_log_info);
+	logging_vty_add_cmds(NULL);
 	osmo_stats_vty_add_cmds(&gprs_log_info);
 	gbproxy_vty_init();
 
diff --git a/openbsc/src/gprs/gtphub_main.c b/openbsc/src/gprs/gtphub_main.c
index 46360f9..73a122c 100644
--- a/openbsc/src/gprs/gtphub_main.c
+++ b/openbsc/src/gprs/gtphub_main.c
@@ -311,7 +311,7 @@
 
 	vty_info.copyright = gtphub_copyright;
 	vty_init(&vty_info);
-	logging_vty_add_cmds(&gtphub_log_info);
+	logging_vty_add_cmds(NULL);
         gtphub_vty_init(hub, cfg);
 
 	rate_ctr_init(osmo_gtphub_ctx);
diff --git a/openbsc/src/gprs/sgsn_main.c b/openbsc/src/gprs/sgsn_main.c
index b4be631..af5cced 100644
--- a/openbsc/src/gprs/sgsn_main.c
+++ b/openbsc/src/gprs/sgsn_main.c
@@ -340,7 +340,7 @@
 
 	vty_info.copyright = openbsc_copyright;
 	vty_init(&vty_info);
-	logging_vty_add_cmds(&gprs_log_info);
+	logging_vty_add_cmds(NULL);
 	osmo_stats_vty_add_cmds(&gprs_log_info);
 	sgsn_vty_init();
 	ctrl_vty_init(tall_bsc_ctx);
diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c
index 7d3b4af..00acbc7 100644
--- a/openbsc/src/libbsc/bsc_vty.c
+++ b/openbsc/src/libbsc/bsc_vty.c
@@ -3851,7 +3851,7 @@
 
 extern int bsc_vty_init_extra(void);
 
-int bsc_vty_init(const struct log_info *cat, struct gsm_network *network)
+int bsc_vty_init(struct gsm_network *network)
 {
 	cfg_ts_pchan_cmd.string =
 		vty_cmd_string_from_valstr(tall_bsc_ctx,
@@ -3887,7 +3887,7 @@
 	install_element_ve(&show_paging_cmd);
 	install_element_ve(&show_paging_group_cmd);
 
-	logging_vty_add_cmds(cat);
+	logging_vty_add_cmds(NULL);
 	osmo_stats_vty_add_cmds();
 
 	install_element(GSMNET_NODE, &cfg_net_neci_cmd);
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c
index 1d96bb4..adce775 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_main.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c
@@ -212,7 +212,7 @@
 	/* This needs to precede handle_options() */
 	vty_info.copyright = openbsc_copyright;
 	vty_init(&vty_info);
-	bsc_vty_init(&log_info, bsc_gsmnet);
+	bsc_vty_init(bsc_gsmnet);
 	bsc_msg_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE);
 	ctrl_vty_init(tall_bsc_ctx);
 
diff --git a/openbsc/src/osmo-bsc_mgcp/mgcp_main.c b/openbsc/src/osmo-bsc_mgcp/mgcp_main.c
index 964768e..4ea0700 100644
--- a/openbsc/src/osmo-bsc_mgcp/mgcp_main.c
+++ b/openbsc/src/osmo-bsc_mgcp/mgcp_main.c
@@ -220,7 +220,7 @@
 
 	vty_info.copyright = openbsc_copyright;
 	vty_init(&vty_info);
-	logging_vty_add_cmds(&log_info);
+	logging_vty_add_cmds(NULL);
 	osmo_stats_vty_add_cmds(&log_info);
 	mgcp_vty_init();
 
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c
index a4dd679..80e89fd 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c
@@ -1616,7 +1616,7 @@
 
 	vty_info.copyright = openbsc_copyright;
 	vty_init(&vty_info);
-	logging_vty_add_cmds(&log_info);
+	logging_vty_add_cmds(NULL);
 	osmo_stats_vty_add_cmds(&log_info);
 	bsc_nat_vty_init(nat);
 	ctrl_vty_init(tall_bsc_ctx);
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
index 706e507..deb98fc 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
@@ -1329,8 +1329,8 @@
 
 
 /* called by the telnet interface... we have our own init above */
-int bsc_vty_init(const struct log_info *cat, struct gsm_network *network)
+int bsc_vty_init(struct gsm_network *network)
 {
-	logging_vty_add_cmds(cat);
+	logging_vty_add_cmds(NULL);
 	return 0;
 }
diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c
index bbcdd1b..2bdfada 100644
--- a/openbsc/src/osmo-nitb/bsc_hack.c
+++ b/openbsc/src/osmo-nitb/bsc_hack.c
@@ -283,7 +283,7 @@
 	}
 
 	/* Initialize VTY */
-	bsc_vty_init(&log_info, bsc_gsmnet);
+	bsc_vty_init(bsc_gsmnet);
 	ctrl_vty_init(tall_bsc_ctx);
 
 #ifdef BUILD_SMPP
