diff --git a/Makefile.am b/Makefile.am
index 3df694c..90e1209 100644
--- a/Makefile.am
+++ b/Makefile.am
AM_TESTS_ENVIRONMENT += dbus-run-session --
endif
+if VALGRIND
+LOG_COMPILER = valgrind --error-exitcode=1 --num-callers=30
+LOG_FLAGS = --trace-children=yes --leak-check=full --show-reachable=no \
+ --suppressions=$(srcdir)/valgrind.supp --quiet
+endif
+
pkgconfigdir = $(libdir)/pkgconfig
if LIBRARY
diff --git a/configure.ac b/configure.ac
index 8ea503c..813400b 100644
--- a/configure.ac
+++ b/configure.ac
if (test "$USE_MAINTAINER_MODE" = "yes"); then
AC_CHECK_PROG(enable_coverage, [lcov], [yes], [no])
AC_CHECK_PROG(enable_dbus_run_session, [dbus-run-session], [yes])
+ AC_CHECK_PROG(enable_valgrind, [valgrind], [yes])
+ AC_CHECK_HEADERS(valgrind/memcheck.h)
fi
AM_CONDITIONAL(COVERAGE, test "${enable_coverage}" = "yes")
AM_CONDITIONAL(DBUS_RUN_SESSION, test "${enable_dbus_run_session}" = "yes")
+AM_CONDITIONAL(VALGRIND, test "${enable_valgrind}" = "yes")
MISC_FLAGS
diff --git a/valgrind.supp b/valgrind.supp
new file mode 100644
index 0000000..bf28bcd
--- /dev/null
+++ b/valgrind.supp
+{
+ ecb_bind
+ Memcheck:Param
+ socketcall.bind(my_addr.sa_data)
+ fun:bind
+ fun:ecb_aes_setup
+}
+{
+ cmac_bind
+ Memcheck:Param
+ socketcall.bind(my_addr.sa_data)
+ fun:bind
+ fun:cmac_aes_setup
+}