diff --git a/aclocal.m4 b/aclocal.m4
index 7d33fcdfbb5eac7e5d566167b956a407a7872536..dcb8832a7549dac07cde1535b52ba6b45354df06 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -349,6 +349,7 @@ AC_DEFUN([FP_SETTINGS],
     then
         SettingsCCompilerCommand='$topdir/../mingw/bin/gcc.exe'
         SettingsCCompilerFlags="$CONF_CC_OPTS_STAGE2 $CONF_GCC_LINKER_OPTS_STAGE2"
+        SettingsArCommand='$topdir/../mingw/bin/ar.exe'
         SettingsPerlCommand='$topdir/../perl/perl.exe'
         SettingsDllWrapCommand='$topdir/../mingw/bin/dllwrap.exe'
         SettingsWindresCommand='$topdir/../mingw/bin/windres.exe'
@@ -356,6 +357,7 @@ AC_DEFUN([FP_SETTINGS],
     else
         SettingsCCompilerCommand="$WhatGccIsCalled"
         SettingsCCompilerFlags="$CONF_CC_OPTS_STAGE2 $CONF_GCC_LINKER_OPTS_STAGE2"
+        SettingsArCommand="$ArCmd"
         SettingsPerlCommand="$PerlCmd"
         SettingsDllWrapCommand="/bin/false"
         SettingsWindresCommand="/bin/false"
@@ -363,6 +365,7 @@ AC_DEFUN([FP_SETTINGS],
     fi
     AC_SUBST(SettingsCCompilerCommand)
     AC_SUBST(SettingsCCompilerFlags)
+    AC_SUBST(SettingsArCommand)
     AC_SUBST(SettingsPerlCommand)
     AC_SUBST(SettingsDllWrapCommand)
     AC_SUBST(SettingsWindresCommand)
diff --git a/configure.ac b/configure.ac
index ca0513887a54eac2649fe679c96616d046ba01ae..f9ec988561ae6980431bb682915ac0c86fc97632 100644
--- a/configure.ac
+++ b/configure.ac
@@ -456,8 +456,6 @@ dnl May need to use gcc to find platform details.
 dnl --------------------------------------------------------------
 FPTOOLS_SET_HASKELL_PLATFORM_VARS
 
-FP_SETTINGS
-
 dnl ** figure out how to do context diffs
 FP_PROG_CONTEXT_DIFF
 
@@ -477,6 +475,7 @@ FP_PROG_AR_NEEDS_RANLIB
 dnl ** Check to see whether ln -s works
 AC_PROG_LN_S
 
+FP_SETTINGS
 
 dnl ** Find the path to sed
 AC_PATH_PROGS(SedCmd,gsed sed,sed)
diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in
index 458f5f433f827304c384c2f7f82e79af47319afb..0037ff1ce818cbd8988880b8e545fe2fb540aa1a 100644
--- a/distrib/configure.ac.in
+++ b/distrib/configure.ac.in
@@ -88,8 +88,6 @@ dnl May need to use gcc to find platform details.
 dnl --------------------------------------------------------------
 FPTOOLS_SET_HASKELL_PLATFORM_VARS
 
-FP_SETTINGS
-
 dnl WordSize for settings.in
 AC_CHECK_SIZEOF(void *, 4)
 WordSize=$ac_cv_sizeof_void_p
@@ -100,6 +98,8 @@ dnl ** how to invoke `ar' and `ranlib'
 #
 FP_PROG_AR_NEEDS_RANLIB
 
+FP_SETTINGS
+
 #
 AC_CONFIG_FILES(settings mk/config.mk mk/install.mk)
 AC_OUTPUT
diff --git a/settings.in b/settings.in
index c2c2ec5c3d12c01952afb03f250862c8cbccf397..b940a7c0a0907f1e3c93e1212430c7f82c864be7 100644
--- a/settings.in
+++ b/settings.in
@@ -1,7 +1,7 @@
 [("GCC extra via C opts", "@GccExtraViaCOpts@"),
  ("C compiler command", "@SettingsCCompilerCommand@"),
  ("C compiler flags", "@SettingsCCompilerFlags@"),
- ("ar command", "@ArCmd@"),
+ ("ar command", "@SettingsArCommand@"),
  ("ar flags", "@ArArgs@"),
  ("ar supports at file", "@ArSupportsAtFile@"),
  ("touch command", "@SettingsTouchCommand@"),