diff --git a/Lib/shutil.py b/Lib/shutil.py
index c50184c..c3ff687 100644
--- a/Lib/shutil.py
+++ b/Lib/shutil.py
@@ -127,7 +127,13 @@
         # continue with other files
         except Error, err:
             errors.extend(err.args[0])
-    copystat(src, dst)
+    try:
+        copystat(src, dst)
+    except WindowsError:
+        # can't copy file access times on Windows
+        pass
+    except OSError, why:
+        errors.extend((src, dst, str(why)))
     if errors:
         raise Error, errors
 
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
index 6ab5a35..79da538 100644
--- a/Lib/test/test_shutil.py
+++ b/Lib/test/test_shutil.py
@@ -74,6 +74,33 @@
             except:
                 pass
 
+                
+    def test_copytree_simple(self):
+        src_dir = tempfile.mkdtemp()
+        dst_dir = os.path.join(tempfile.mkdtemp(), 'destination')
+        open(os.path.join(src_dir, 'test.txt'), 'w').write('123')
+        os.mkdir(os.path.join(src_dir, 'test_dir'))
+        open(os.path.join(src_dir, 'test_dir', 'test.txt'), 'w').write('456')
+        #
+        try:
+            shutil.copytree(src_dir, dst_dir)
+            self.assertTrue(os.path.isfile(os.path.join(dst_dir, 'test.txt')))
+            self.assertTrue(os.path.isdir(os.path.join(dst_dir, 'test_dir')))
+            self.assertTrue(os.path.isfile(os.path.join(dst_dir, 'test_dir', 'test.txt')))
+            self.assertEqual(open(os.path.join(dst_dir, 'test.txt')).read(), '123')
+            self.assertEqual(open(os.path.join(dst_dir, 'test_dir', 'test.txt')).read(), '456')
+        finally:
+            try:
+                os.remove(os.path.join(src_dir, 'test.txt'))
+                os.remove(os.path.join(dst_dir, 'test.txt'))
+                os.remove(os.path.join(src_dir, 'test_dir', 'test.txt'))
+                os.remove(os.path.join(dst_dir, 'test_dir', 'test.txt'))
+                os.removedirs(src_dir)
+                os.removedirs(dst_dir)
+            except:
+                pass
+            
+            
     if hasattr(os, "symlink"):
         def test_dont_copy_file_onto_link_to_itself(self):
             # bug 851123.
diff --git a/Misc/NEWS b/Misc/NEWS
index ca5f5c8..dec5a2c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -61,6 +61,9 @@
 Library
 -------
 
+- Bug #1525866: Don't copy directory stat times in 
+  shutil.copytree on Windows
+
 - Bug #1002398: The documentation for os.path.sameopenfile now correctly
   refers to file descriptors, not file objects.
 
