diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 34aed6bc2a5dfdfcd419d2804e8225cdc4ec9c47..18d58769191d3eebe83d9996194dac83f11d7546 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -26,3 +26,16 @@ EXTRA_DIST = m4/libtool.m4 \
 			 m4/ltoptions.m4 \
 			 m4/ltsugar.m4 \
 			 m4/ltversion.m4
+
+coverage:
+	$(AM_V_at)lcov --directory $(top_builddir) --capture --output-file sflphone-coverage.info
+	$(MKDIR_P) html-output
+	genhtml -o html-output sflphone-coverage.info
+
+coverage-clean:
+	$(AM_V_at)lcov --directory $(top_builddir) --zerocounters
+	$(AM_V_at)rm -rf sflphone-coverage.info
+	$(AM_V_at)find -name '*.gcda' -exec rm -f {} +
+	$(AM_V_at)find -name '*.gcno' -exec rm -f {} +
+
+.PHONY: coverage coverage-clean
diff --git a/daemon/configure.ac b/daemon/configure.ac
index 9da7e1942812de77ec86a159eb347ed977773132..774e37160c56d6aac77d49d849a541833d62cecd 100644
--- a/daemon/configure.ac
+++ b/daemon/configure.ac
@@ -94,6 +94,12 @@ dnl Check for the samplerate development package - name: libsamplerate0-dev
 LIBSAMPLERATE_MIN_VERSION=0.1.2
 PKG_CHECK_MODULES(SAMPLERATE, samplerate >= ${LIBSAMPLERATE_MIN_VERSION},, AC_MSG_ERROR([Missing libsamplerate development package: libsamplerate0-dev]))
 
+dnl Coverage is default-disabled
+AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage], [Enable coverage]))
+
+AS_IF([test "x$enable_coverage" = "xyes"], [
+        CXXFLAGS="${CXXFLAGS} -fprofile-arcs -ftest-coverage"
+        LDFLAGS="${LDFLAGS} -fprofile-arcs -ftest-coverage"])
 
 dnl Video is default-disabled
 AC_ARG_ENABLE([video], AS_HELP_STRING([--enable-video], [Enable video]))