--- a/source3/rpc_server/rpc_ep_setup.c
+++ b/source3/rpc_server/rpc_ep_setup.c
@@ -881,6 +881,7 @@ static bool rpcecho_init_cb(void *ptr) {
 
 #endif
 
+#ifdef DFS_SUPPORT
 static bool netdfs_init_cb(void *ptr)
 {
 	struct dcesrv_ep_context *ep_ctx =
@@ -928,6 +929,7 @@ static bool netdfs_init_cb(void *ptr)
 
 	return true;
 }
+#endif
 
 #ifdef ACTIVE_DIRECTORY
 static bool dssetup_init_cb(void *ptr)
@@ -1173,12 +1175,14 @@ bool dcesrv_ep_setup(struct tevent_conte
 		return false;
 	}
 
+#ifdef DFS_SUPPORT
 	netdfs_cb.init         = netdfs_init_cb;
 	netdfs_cb.shutdown     = NULL;
 	netdfs_cb.private_data = ep_ctx;
 	if (!NT_STATUS_IS_OK(rpc_netdfs_init(&netdfs_cb))) {
 		return false;
 	}
+#endif
 
 #ifdef DEVELOPER
 	rpcecho_cb.init         = rpcecho_init_cb;
--- a/source3/librpc/rpc/rpc_common.c
+++ b/source3/librpc/rpc/rpc_common.c
@@ -122,9 +122,11 @@ static bool initialize_interfaces(void)
 		return false;
 	}
 #endif
+#ifdef DFS_SUPPORT
 	if (!smb_register_ndr_interface(&ndr_table_netdfs)) {
 		return false;
 	}
+#endif
 #ifdef DEVELOPER
 	if (!smb_register_ndr_interface(&ndr_table_rpcecho)) {
 		return false;
--- a/source3/smbd/server_exit.c
+++ b/source3/smbd/server_exit.c
@@ -138,7 +138,9 @@ static void exit_server_common(enum serv
 #ifdef DEVELOPER
 		rpc_rpcecho_shutdown();
 #endif
+#ifdef DFS_SUPPORT
 		rpc_netdfs_shutdown();
+#endif
 		rpc_initshutdown_shutdown();
 #ifdef EXTRA_SERVICES
 		rpc_eventlog_shutdown();
--- a/source3/rpcclient/rpcclient.c
+++ b/source3/rpcclient/rpcclient.c
@@ -629,7 +629,9 @@ static struct cmd_set *rpcclient_command
 #endif
 	netlogon_commands,
 	srvsvc_commands,
+#ifdef DFS_SUPPORT
 	dfs_commands,
+#endif
 #ifdef DEVELOPER
 	echo_commands,
 #endif
