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