1--- a/source3/librpc/rpc/rpc_common.c
2+++ b/source3/librpc/rpc/rpc_common.c
3@@ -119,9 +119,11 @@ static bool initialize_interfaces(void)
4 	if (!smb_register_ndr_interface(&ndr_table_netdfs)) {
5 		return false;
6 	}
7+#ifdef DEVELOPER
8 	if (!smb_register_ndr_interface(&ndr_table_rpcecho)) {
9 		return false;
10 	}
11+#endif
12 	if (!smb_register_ndr_interface(&ndr_table_initshutdown)) {
13 		return false;
14 	}
15--- a/source3/rpcclient/rpcclient.c
16+++ b/source3/rpcclient/rpcclient.c
17@@ -628,7 +628,9 @@ static struct cmd_set *rpcclient_command
18 	netlogon_commands,
19 	srvsvc_commands,
20 	dfs_commands,
21+#ifdef DEVELOPER
22 	echo_commands,
23+#endif
24 	epmapper_commands,
25 	shutdown_commands,
26  	test_commands,
27--- a/source3/rpc_server/srv_pipe.c
28+++ b/source3/rpc_server/srv_pipe.c
29@@ -433,10 +433,12 @@ static bool check_bind_req(struct pipes_
30 	if (ok) {
31 		context_fns->allow_connect = true;
32 	}
33+#ifdef DEVELOPER
34 	ok = ndr_syntax_id_equal(abstract, &ndr_table_rpcecho.syntax_id);
35 	if (ok) {
36 		context_fns->allow_connect = true;
37 	}
38+#endif
39 	/*
40 	 * every interface can be modified to allow "connect" auth_level by
41 	 * using a parametric option like:
42