diff --git a/configure b/configure
index a4839a5fdd85f24bcecc6579905dbd0ea4d2cde1..7a31847602183ba6c42c56a8cc946a654d18aefc 100755
--- a/configure
+++ b/configure
@@ -12254,6 +12254,31 @@ fi
 $as_echo "$ac_cv_cflags__Wtype_limits" >&6; }
 if test $ac_cv_cflags__Wtype_limits = yes; then :
   EXTRACFLAGS="$EXTRACFLAGS -Wtype-limits"
+fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wunused-but-set-parameter" >&5
+$as_echo_n "checking whether the compiler supports -Wunused-but-set-parameter... " >&6; }
+if test "${ac_cv_cflags__Wunused_but_set_parameter+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_wine_try_cflags_saved=$CFLAGS
+CFLAGS="$CFLAGS -Wunused-but-set-parameter"
+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__Wunused_but_set_parameter=yes
+else
+  ac_cv_cflags__Wunused_but_set_parameter=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__Wunused_but_set_parameter" >&5
+$as_echo "$ac_cv_cflags__Wunused_but_set_parameter" >&6; }
+if test $ac_cv_cflags__Wunused_but_set_parameter = yes; then :
+  EXTRACFLAGS="$EXTRACFLAGS -Wunused-but-set-parameter"
 fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wwrite-strings" >&5
 $as_echo_n "checking whether the compiler supports -Wwrite-strings... " >&6; }
diff --git a/configure.ac b/configure.ac
index 51d053392566e59c89195c148eb452a4b26fae0f..82b1783f2b190dd9cdefe9dc68ea43511466de48 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1707,6 +1707,7 @@ then
   WINE_TRY_CFLAGS([-Wdeclaration-after-statement])
   WINE_TRY_CFLAGS([-Wstrict-prototypes])
   WINE_TRY_CFLAGS([-Wtype-limits])
+  WINE_TRY_CFLAGS([-Wunused-but-set-parameter])
   WINE_TRY_CFLAGS([-Wwrite-strings])
 
   dnl Check for noisy string.h