Issue #6807: Run msisupport.mak earlier.
diff --git a/Misc/NEWS b/Misc/NEWS
index f387dc7..f8081a9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -474,6 +474,8 @@
 Build
 -----
 
+- Issue #6807: Run msisupport.mak earlier.
+
 - Issue #10580: Minor grammar change in Windows installer.
 
 - Issue #13326: Clean __pycache__ directories correctly on OpenBSD.
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py
index 57b5033..19cd7fb 100644
--- a/Tools/msi/msi.py
+++ b/Tools/msi/msi.py
@@ -179,6 +179,8 @@
 have_mingw = build_mingw_lib(lib_file, def_file, dll_file, mingw_lib)
 
 # Determine the target architecture
+if os.system("nmake /nologo /c /f msisupport.mak") != 0:
+    raise RuntimeError("'nmake /f msisupport.mak' failed")
 dll_path = os.path.join(srcdir, PCBUILD, dll_file)
 msilib.set_arch_from_file(dll_path)
 if msilib.pe_type(dll_path) != msilib.pe_type("msisupport.dll"):
@@ -376,8 +378,6 @@
     # UpdateEditIDLE sets the REGISTRY.tcl component into
     # the installed/uninstalled state according to both the
     # Extensions and TclTk features.
-    if os.system("nmake /nologo /c /f msisupport.mak") != 0:
-        raise RuntimeError("'nmake /f msisupport.mak' failed")
     add_data(db, "Binary", [("Script", msilib.Binary("msisupport.dll"))])
     # See "Custom Action Type 1"
     if msilib.Win64: