On David Ascher's recommendation: reversed order of 'utime()' and
'chmod()' in 'copy_file()'.
diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py
index 7aedc1c..9a299df 100644
--- a/Lib/distutils/util.py
+++ b/Lib/distutils/util.py
@@ -198,10 +198,13 @@
     _copy_file_contents (src, dst)
     if preserve_mode or preserve_times:
         st = os.stat (src)
-        if preserve_mode:
-            os.chmod (dst, S_IMODE (st[ST_MODE]))
+
+        # According to David Ascher <da@ski.org>, utime() should be done
+        # before chmod() (at least under NT).
         if preserve_times:
             os.utime (dst, (st[ST_ATIME], st[ST_MTIME]))
+        if preserve_mode:
+            os.chmod (dst, S_IMODE (st[ST_MODE]))
 
     return 1