diff --git a/Makefile.am b/Makefile.am
index 73589645473118ddc21e0d3a4ba9e5d8a1a234e0..171e9dd1269af6cb957e0d85c77754d68b0e12f4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1003,6 +1003,7 @@ lib/_autoconf.py: Makefile | lib/.dir
 	  else \
 	    echo "HTOOLS = False"; \
 	  fi; \
+	  echo "ENABLE_CONFD = $(ENABLE_CONFD)"; \
 	} > $@
 
 lib/_vcsversion.py: Makefile vcs-version | lib/.dir
@@ -1054,6 +1055,7 @@ $(REPLACE_VARS_SED): Makefile
 	  echo 's#@GNTCONFDGROUP@#$(CONFD_GROUP)#g'; \
 	  echo 's#@GNTMASTERDGROUP@#$(MASTERD_GROUP)#g'; \
 	  echo 's#@GNTDAEMONSGROUP@#$(DAEMONS_GROUP)#g'; \
+	  echo 's#@CUSTOM_ENABLE_CONFD@#$(ENABLE_CONFD)#g'; \
 	} > $@
 
 # Using deferred evaluation
diff --git a/configure.ac b/configure.ac
index ad009400051320d7d5ebe838c744f81c98ae3dd6..06ed0e4186fb82ffe3156f2b7f6a9775bac0bc25 100644
--- a/configure.ac
+++ b/configure.ac
@@ -261,6 +261,27 @@ AC_ARG_ENABLE([htools-rapi],
         [],
         [enable_htools_rapi=no])
 
+# --enable-htools
+ENABLE_CONFD=
+AC_ARG_ENABLE([confd],
+  [AS_HELP_STRING([--enable-confd],
+  [enable the ganeti-confd daemon (default: yes)])],
+  [[case "$enableval" in
+      no)
+        enable_confd=False
+        ;;
+      yes)
+        enable_confd=True
+        ;;
+      *)
+        echo "Invalid value for enable-confd '$enableval'"
+        exit 1
+        ;;
+    esac
+  ]],
+  [enable_confd=True])
+AC_SUBST(ENABLE_CONFD, $enable_confd)
+
 # --with-disk-separator=...
 AC_ARG_WITH([disk-separator],
   [AS_HELP_STRING([--with-disk-separator=STRING],
diff --git a/lib/constants.py b/lib/constants.py
index 1da713dfa54f3b56aa2db638ad73f33ab509debf..48ac0b51c4e6976e25c3db7bd58d5b05c2c9b663 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -181,6 +181,7 @@ SYSCONFDIR = _autoconf.SYSCONFDIR
 TOOLSDIR = _autoconf.TOOLSDIR
 CONF_DIR = SYSCONFDIR + "/ganeti"
 USER_SCRIPTS_DIR = CONF_DIR + "/scripts"
+ENABLE_CONFD = _autoconf.ENABLE_CONFD
 
 #: Lock file for watcher, locked in shared mode by watcher; lock in exclusive
 # mode to block watcher (see L{cli._RunWhileClusterStoppedHelper.Call}