diff --git a/configure b/configure
index 6f8fca28f5bb9a7308ac8c87ec50625ffaa2054e..437fb206c145d567f6a38d938a79b5efdede1e21 100755
--- a/configure
+++ b/configure
@@ -11875,6 +11875,63 @@ $as_echo "$ac_cv_c_string_h_warnings" >&6; }
     EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith"
   fi
 
+    saved_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -Werror"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken unused result warnings" >&5
+$as_echo_n "checking for broken unused result warnings... " >&6; }
+if test "${ac_cv_c_unused_result_warnings+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <unistd.h>
+int
+main ()
+{
+write(2,"a",1)
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_unused_result_warnings=no
+else
+  ac_cv_c_unused_result_warnings=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_unused_result_warnings" >&5
+$as_echo "$ac_cv_c_unused_result_warnings" >&6; }
+  CFLAGS="$saved_CFLAGS"
+  if test "$ac_cv_c_unused_result_warnings" = "yes"
+  then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wno-unused-result" >&5
+$as_echo_n "checking whether the compiler supports -Wno-unused-result... " >&6; }
+if test "${ac_cv_cflags__Wno_unused_result+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_wine_try_cflags_saved=$CFLAGS
+CFLAGS="$CFLAGS -Wno-unused-result"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int main(int argc, char **argv) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_cflags__Wno_unused_result=yes
+else
+  ac_cv_cflags__Wno_unused_result=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+CFLAGS=$ac_wine_try_cflags_saved
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wno_unused_result" >&5
+$as_echo "$ac_cv_cflags__Wno_unused_result" >&6; }
+if test $ac_cv_cflags__Wno_unused_result = yes; then :
+  EXTRACFLAGS="$EXTRACFLAGS -Wno-unused-result"
+fi
+  fi
+
     if test "x$enable_maintainer_mode" = "xyes"
   then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Werror" >&5
diff --git a/configure.ac b/configure.ac
index 5638f2b2dabca05e0cff04dc9002ab723b18f750..0c3a21210e3c761360e6c3e30ec6739a4d868123 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1604,6 +1604,17 @@ then
     EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith"
   fi
 
+  dnl Fortify enables unused result warnings on a gazillion functions, making it useless
+  saved_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -Werror"
+  AC_CACHE_CHECK([for broken unused result warnings], ac_cv_c_unused_result_warnings,
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>]], [[write(2,"a",1)]])],[ac_cv_c_unused_result_warnings=no],[ac_cv_c_unused_result_warnings=yes]))
+  CFLAGS="$saved_CFLAGS"
+  if test "$ac_cv_c_unused_result_warnings" = "yes"
+  then
+    WINE_TRY_CFLAGS([-Wno-unused-result])
+  fi
+
   dnl Enable -Werror for maintainer mode
   if test "x$enable_maintainer_mode" = "xyes"
   then