diff --git a/util.py b/util.py
index <HASH>..<HASH> 100644
--- a/util.py
+++ b/util.py
@@ -29,8 +29,27 @@ def get_platform ():
        irix-5.3
        irix64-6.2
 
-    For non-POSIX platforms, currently just returns 'sys.platform'.
+    Windows will return one of:
+       win-x86_64 (64bit Windows on x86_64 (AMD64))
+       win-ia64 (64bit Windows on Itanium)
+       win32 (all others - specifically, sys.platform is returned)
+
+    For other non-POSIX platforms, currently just returns 'sys.platform'.
     """
+    if os.name == 'nt':
+        # sniff sys.version for architecture.
+        prefix = " bit ("
+        i = string.find(sys.version, prefix)
+        if i == -1:
+            return sys.platform
+        j = string.find(sys.version, ")", i)
+        look = sys.version[i+len(prefix):j].lower()
+        if look=='amd64':
+            return 'win-x86_64'
+        if look=='itanium':
+            return 'win-ia64'
+        return sys.platform
+
     if os.name != "posix" or not hasattr(os, 'uname'):
         # XXX what about the architecture? NT is Intel or Alpha,
         # Mac OS is M68k or PPC, etc.
[ <I> ] distutils.util.get_platform() return value on <I>bit Windows
As discussed on distutils-sig: Allows the generated installer name on
<I>bit Windows platforms to be different than the name generated for
<I>bit Windows platforms.