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