diff --git a/openbsc/include/openbsc/mncc.h b/openbsc/include/openbsc/mncc.h
index 10192ad..49f0c8b 100644
--- a/openbsc/include/openbsc/mncc.h
+++ b/openbsc/include/openbsc/mncc.h
@@ -206,7 +206,7 @@
 /* input from CC code into mncc_sock */
 int mncc_sock_from_cc(struct gsm_network *net, struct msgb *msg);
 
-int mncc_sock_init(struct gsm_network *gsmnet);
+int mncc_sock_init(struct gsm_network *net, const char *sock_path);
 
 #define mncc_is_data_frame(msg_type) \
 	(msg_type == GSM_TCHF_FRAME \
diff --git a/openbsc/src/libmsc/mncc_sock.c b/openbsc/src/libmsc/mncc_sock.c
index dd0a44f..6da1c56 100644
--- a/openbsc/src/libmsc/mncc_sock.c
+++ b/openbsc/src/libmsc/mncc_sock.c
@@ -277,7 +277,7 @@
 }
 
 
-int mncc_sock_init(struct gsm_network *net)
+int mncc_sock_init(struct gsm_network *net, const char *sock_path)
 {
 	struct mncc_sock_state *state;
 	struct osmo_fd *bfd;
@@ -292,10 +292,10 @@
 
 	bfd = &state->listen_bfd;
 
-	rc = osmo_unixsock_listen(bfd, SOCK_SEQPACKET, "/tmp/bsc_mncc");
+	rc = osmo_unixsock_listen(bfd, SOCK_SEQPACKET, sock_path);
 	if (rc < 0) {
-		LOGP(DMNCC, LOGL_ERROR, "Could not create unix socket: %s\n",
-			strerror(errno));
+		LOGP(DMNCC, LOGL_ERROR, "Could not create unix socket: %s: %s\n",
+		     sock_path, strerror(errno));
 		talloc_free(state);
 		return rc;
 	}
@@ -314,6 +314,7 @@
 
 	net->mncc_state = state;
 
+	LOGP(DMNCC, LOGL_NOTICE, "MNCC socket at %s\n", sock_path);
 	return 0;
 }
 
diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c
index 8b074f1..3c878a6 100644
--- a/openbsc/src/osmo-nitb/bsc_hack.c
+++ b/openbsc/src/osmo-nitb/bsc_hack.c
@@ -62,7 +62,7 @@
 static const char *rf_ctrl_name = NULL;
 extern const char *openbsc_copyright;
 static int daemonize = 0;
-static int use_mncc_sock = 0;
+static const char *mncc_sock_path = NULL;
 static int use_db_counter = 1;
 
 /* timer to store statistics */
@@ -103,7 +103,8 @@
 	printf("  -V --version               Print the version of OpenBSC.\n");
 	printf("  -P --rtp-proxy             Enable the RTP Proxy code inside OpenBSC.\n");
 	printf("  -e --log-level number      Set a global loglevel.\n");
-	printf("  -m --mncc-sock             Disable built-in MNCC handler and offer socket.\n");
+	printf("  -M --mncc-sock-path PATH   Disable built-in MNCC handler and offer socket.\n");
+	printf("  -m --mncc-sock 	     Same as `-M /tmp/bsc_mncc' (deprecated).\n");
 	printf("  -C --no-dbcounter          Disable regular syncing of counters to database.\n");
 	printf("  -r --rf-ctl NAME           A unix domain socket to listen for cmds.\n");
 }
@@ -126,12 +127,13 @@
 			{"rtp-proxy", 0, 0, 'P'},
 			{"log-level", 1, 0, 'e'},
 			{"mncc-sock", 0, 0, 'm'},
+			{"mncc-sock-path", 1, 0, 'M'},
 			{"no-dbcounter", 0, 0, 'C'},
 			{"rf-ctl", 1, 0, 'r'},
 			{0, 0, 0, 0}
 		};
 
-		c = getopt_long(argc, argv, "hd:Dsl:ar:p:TPVc:e:mCr:",
+		c = getopt_long(argc, argv, "hd:Dsl:ar:p:TPVc:e:mCr:M:",
 				long_options, &option_index);
 		if (c == -1)
 			break;
@@ -168,8 +170,11 @@
 		case 'e':
 			log_set_log_level(osmo_stderr_target, atoi(optarg));
 			break;
+		case 'M':
+			mncc_sock_path = optarg;
+			break;
 		case 'm':
-			use_mncc_sock = 1;
+			mncc_sock_path = "/tmp/bsc_mncc";
 			break;
 		case 'C':
 			use_db_counter = 0;
@@ -275,10 +280,10 @@
 	handle_options(argc, argv);
 
 	/* internal MNCC handler or MNCC socket? */
-	if (use_mncc_sock) {
+	if (mncc_sock_path) {
 		rc = bsc_bootstrap_network(mncc_sock_from_cc, config_file);
 		if (rc >= 0)
-			mncc_sock_init(bsc_gsmnet);
+			mncc_sock_init(bsc_gsmnet, mncc_sock_path);
 	} else
 		rc = bsc_bootstrap_network(int_mncc_recv, config_file);
 	if (rc < 0)
