diff --git a/Doxyfile.in b/Doxyfile.in
index be500bbfa8111a7c0bd2b206498aa8e278fe5480..0f8b111d988dadb146c768b07e9ef5b157aff9be 100644
--- a/Doxyfile.in
+++ b/Doxyfile.in
@@ -767,7 +767,7 @@ WARNINGS               = YES
 # will automatically be disabled.
 # The default value is: YES.
 
-WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_UNDOCUMENTED   = @DOXYGEN_WARN_ON_MISSING@
 
 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
 # potential errors in the documentation, such as not documenting some parameters
@@ -790,7 +790,7 @@ WARN_NO_PARAMDOC       = NO
 # a warning is encountered.
 # The default value is: NO.
 
-WARN_AS_ERROR          = NO
+WARN_AS_ERROR          = @DOXYGEN_FATAL_WARNINGS@
 
 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
 # can produce. The string should contain the $file, $line, and $text tags, which
diff --git a/changes/ticket32385 b/changes/ticket32385
new file mode 100644
index 0000000000000000000000000000000000000000..2a4fc64f3dce138ab0e29c49b99caf39f2f76c54
--- /dev/null
+++ b/changes/ticket32385
@@ -0,0 +1,5 @@
+  o Minor features (doxygen):
+    - Our "make doxygen" target now respects --enable-fatal-warnings by
+      default, and does not warn about items that are missing documentation.
+      To warn about missing documentation, run configure with the
+      "--enable-missing-doc-warnings" flag. Closes ticket 32385.
diff --git a/configure.ac b/configure.ac
index 487361773dd243ad28569c5e78e5e2ab29c049c4..f3c955ad051768bd6b0ef2fda0b4dbcc6076e056 100644
--- a/configure.ac
+++ b/configure.ac
@@ -76,6 +76,24 @@ AC_ARG_ENABLE(nss,
 AC_ARG_ENABLE(pic,
    AS_HELP_STRING(--enable-pic, [Build Tor's binaries as position-independent code, suitable to link as a library.]))
 
+AC_ARG_ENABLE(missing-doc-warnings,
+   AS_HELP_STRING(--enable-missing-doc-warnings, [Tell doxygen to warn about missing documentation.]))
+
+if test "$enable_missing_doc_warnings" = "yes"; then
+   DOXYGEN_FATAL_WARNINGS=NO
+   DOXYGEN_WARN_ON_MISSING=YES
+elif test "$enable_fatal_warnings" = "yes"; then
+   # Fatal warnings from doxygen are nice, but not if we're warning about
+   # missing documentation.
+   DOXYGEN_FATAL_WARNINGS=YES
+   DOXYGEN_WARN_ON_MISSING=NO
+else
+   DOXYGEN_FATAL_WARNINGS=NO
+   DOXYGEN_WARN_ON_MISSING=NO
+fi
+AC_SUBST(DOXYGEN_FATAL_WARNINGS)
+AC_SUBST(DOXYGEN_WARN_ON_MISSING)
+
 if test "x$enable_coverage" != "xyes" -a "x$enable_asserts_in_tests" = "xno" ; then
     AC_MSG_ERROR([Can't disable assertions outside of coverage build])
 fi