diff --git a/include/osmocom/pcu/pcuif_proto.h b/include/osmocom/pcu/pcuif_proto.h
index 88dc09e..39103ee 100644
--- a/include/osmocom/pcu/pcuif_proto.h
+++ b/include/osmocom/pcu/pcuif_proto.h
@@ -3,6 +3,8 @@
 
 #include <osmocom/gsm/l1sap.h>
 
+#define PCU_SOCK_DEFAULT	"/tmp/pcu_bts"
+
 #define PCU_IF_VERSION		0x07
 #define TXT_MAX_LEN	128
 
diff --git a/src/bts.h b/src/bts.h
index 25193f9..cff0020 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -233,6 +233,9 @@
 	 * period.
 	 */
 	struct BTS *bts;
+
+	/* Path to be used for the pcu-bts socket */
+	char *pcu_sock_path;
 };
 
 #ifdef __cplusplus
diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.cpp
index d7e55e7..e9b85ab 100644
--- a/src/osmobts_sock.cpp
+++ b/src/osmobts_sock.cpp
@@ -223,6 +223,7 @@
 	struct sockaddr_un local;
 	unsigned int namelen;
 	int rc;
+	struct gprs_rlcmac_bts *bts = bts_main_data();
 
 	LOGP(DL1IF, LOGL_INFO, "Opening OsmoPCU L1 interface to OsmoBTS\n");
 
@@ -244,7 +245,7 @@
 	}
 
 	local.sun_family = AF_UNIX;
-	strncpy(local.sun_path, "/tmp/pcu_bts", sizeof(local.sun_path));
+	strncpy(local.sun_path, bts->pcu_sock_path, sizeof(local.sun_path));
 	local.sun_path[sizeof(local.sun_path) - 1] = '\0';
 
 	/* we use the same magic that X11 uses in Xtranssock.c for
diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp
index b69e446..8e7cde8 100644
--- a/src/pcu_main.cpp
+++ b/src/pcu_main.cpp
@@ -216,6 +216,8 @@
 	 */
 	bts->dl_arq_type = EGPRS_ARQ1;
 
+	bts->pcu_sock_path = talloc_strdup(tall_pcu_ctx, PCU_SOCK_DEFAULT);
+
 	msgb_talloc_ctx_init(tall_pcu_ctx, 0);
 
 	osmo_init_logging(&gprs_log_info);
diff --git a/src/pcu_vty.c b/src/pcu_vty.c
index cd22e38..68d2f55 100644
--- a/src/pcu_vty.c
+++ b/src/pcu_vty.c
@@ -9,6 +9,7 @@
 #include <osmocom/vty/misc.h>
 #include <osmocom/core/linuxlist.h>
 #include <osmocom/core/rate_ctr.h>
+#include <osmocom/pcu/pcuif_proto.h>
 #include "pcu_vty.h"
 #include "gprs_rlcmac.h"
 #include "bts.h"
@@ -233,6 +234,8 @@
 	if (bts->dl_tbf_idle_msec)
 		vty_out(vty, " dl-tbf-idle-time %d%s", bts->dl_tbf_idle_msec,
 			VTY_NEWLINE);
+	if (strcmp(bts->pcu_sock_path, PCU_SOCK_DEFAULT))
+		vty_out(vty, " pcu-socket %s%s", bts->pcu_sock_path, VTY_NEWLINE);
 
 	for (i = 0; i < 32; i++) {
 		unsigned int cs = (1 << i);
@@ -966,6 +969,23 @@
 	return CMD_SUCCESS;
 }
 
+DEFUN(cfg_pcu_sock,
+      cfg_pcu_sock_cmd,
+      "pcu-socket PATH",
+      "Configure the osmo-bts PCU socket file/path name\n"
+      "Path of the socket to connect to\n")
+{
+	struct gprs_rlcmac_bts *bts = bts_main_data();
+
+	if (bts->pcu_sock_path) {
+		/* FIXME: close the interface? */
+		talloc_free(bts->pcu_sock_path);
+	}
+	bts->pcu_sock_path = talloc_strdup(tall_pcu_ctx, argv[0]);
+	/* FIXME: re-open the interface? */
+
+	return CMD_SUCCESS;
+}
 
 DEFUN(show_tbf,
       show_tbf_cmd,
@@ -1096,6 +1116,7 @@
 	install_element(PCU_NODE, &cfg_pcu_no_ms_idle_time_cmd);
 	install_element(PCU_NODE, &cfg_pcu_gsmtap_categ_cmd);
 	install_element(PCU_NODE, &cfg_pcu_no_gsmtap_categ_cmd);
+	install_element(PCU_NODE, &cfg_pcu_sock_cmd);
 
 	install_element_ve(&show_bts_stats_cmd);
 	install_element_ve(&show_tbf_cmd);
