diff --git a/Makefile.in b/Makefile.in
index a6b856622db..3daf9e8dbe1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -46,6 +46,10 @@ ifdef CFG_DISABLE_VALGRIND
   $(info cfg: disabling valgrind (CFG_DISABLE_VALGRIND))
   CFG_VALGRIND :=
 endif
+ifdef CFG_BAD_VALGRIND
+  $(info cfg: disabling valgrind due to its unreliability on this platform)
+  CFG_VALGRIND :=
+endif
 
 DOCS :=
 ifeq ($(CFG_MAKEINFO),)
diff --git a/configure b/configure
index 84833f12bcb..79175dd78cb 100755
--- a/configure
+++ b/configure
@@ -201,6 +201,15 @@ probe CFG_MAKEINFO         makeinfo
 probe CFG_TEXI2PDF         texi2pdf
 probe CFG_TEX              tex
 
+# Valgrind is only reliable on Linux. On Windows it doesn't work at all, and
+# on the Mac the dynamic linker causes Valgrind to emit a huge stream of
+# errors.
+if [ $CFG_OSTYPE != Linux ]
+then
+    CFG_BAD_VALGRIND=1
+    putvar CFG_BAD_VALGRIND
+fi
+
 if [ ! -z "$CFG_LLVM_ROOT" ]
 then
     CFG_LLVM_INCDIR="$CFG_LLVM_ROOT/include"