diff --git a/aegisub/m4macros/ac_flag.m4 b/aegisub/m4macros/ac_flag.m4
index cf3248a4e0a12157e6d9ea875cbf66c0f1685a1c..7b22ccad076acee3b199068f5c491ca880e4017a 100644
--- a/aegisub/m4macros/ac_flag.m4
+++ b/aegisub/m4macros/ac_flag.m4
@@ -1,12 +1,14 @@
 AC_DEFUN([AC_C_FLAG], [{
 	AC_LANG_PUSH(C)
 	ac_c_flag_save="$CFLAGS"
-	CFLAGS="$CFLAGS $1"
+	CFLAGS="$CFLAGS -Werror $1"
 	AC_MSG_CHECKING([[whether $CC supports $1]])
 	AC_COMPILE_IFELSE(
 		[AC_LANG_PROGRAM([[]])],
-		[AC_MSG_RESULT([yes])],
 		[
+			CFLAGS="$ac_c_flag_save $1"
+			AC_MSG_RESULT([yes])
+		], [
 			CFLAGS="$ac_c_flag_save"
 			AC_MSG_RESULT([no])
 			$2
@@ -16,11 +18,14 @@ AC_DEFUN([AC_C_FLAG], [{
 AC_DEFUN([AC_CXX_FLAG], [{
 	AC_LANG_PUSH(C++)
 	ac_cxx_flag_save="$CXXFLAGS"
-	CXXFLAGS="$CXXFLAGS $1"
+	CXXFLAGS="$CXXFLAGS -Werror $1"
 	AC_MSG_CHECKING([[whether $CXX supports $1]])
 	AC_COMPILE_IFELSE(
 		[AC_LANG_PROGRAM([[]])],
-		[AC_MSG_RESULT([yes])],
+		[
+			CXXFLAGS="$ac_cxx_flag_save $1"
+			AC_MSG_RESULT([yes])
+		],
 		[
 			CXXFLAGS="$ac_cxx_flag_save"
 			AC_MSG_RESULT([no])