debug
diff --git a/mypyc/build.py b/mypyc/build.py
index fad0995..09787b7 100644
--- a/mypyc/build.py
+++ b/mypyc/build.py
@@ -285,22 +285,30 @@
     """
     # We encode it ourselves and open the files as binary to avoid windows
     # newline translation
+    from stat import ST_MTIME
+
     encoded_contents = contents.encode('utf-8')
     try:
         with open(path, 'rb') as f:
             old_contents = f.read()  # type: Optional[bytes]
+            old_mtime = os.stat(path)[ST_MTIME]
     except IOError:
         old_contents = None
+        old_mtime = 0
     if old_contents != encoded_contents:
         with open(path, 'wb') as f:
             f.write(encoded_contents)
 
+
+        new_mtime = os.stat(path)[ST_MTIME]
+
+        print("Wrote", path, old_mtime, new_mtime)
         # Fudge the mtime forward because otherwise when two builds happen close
         # together (like in a test) setuptools might not realize the source is newer
         # than the new artifact.
         # XXX: This is bad though.
-        new_mtime = os.stat(path).st_mtime + 1
-        os.utime(path, times=(new_mtime, new_mtime))
+        #new_mtime = os.stat(path).st_mtime + 1
+        # os.utime(path, times=(new_mtime, new_mtime))
 
 
 def construct_groups(
diff --git a/mypyc/test/test_run.py b/mypyc/test/test_run.py
index cd999d5..188367e 100644
--- a/mypyc/test/test_run.py
+++ b/mypyc/test/test_run.py
@@ -7,7 +7,6 @@
 import re
 import subprocess
 import contextlib
-import time
 import shutil
 import sys
 from typing import Any, Iterator, List, cast
@@ -45,6 +44,7 @@
 from mypyc.build import mypycify
 
 setup(name='test_run_output',
+      verbose=True,
       ext_modules=mypycify({}, separate={}, skip_cgen_input={!r}, strip_asserts=False,
                            multi_file={}),
 )
@@ -100,6 +100,15 @@
         os.chdir(dir)
 
 
+def fudge_dir_mtimes(dir: str, delta: int) -> None:
+    for dirpath, _, filenames in os.walk(dir):
+        for name in filenames:
+            # if name.endswith(('.c', '.h')): continue
+            path = os.path.join(dirpath, name)
+            new_mtime = os.stat(path).st_mtime + delta
+            os.utime(path, times=(new_mtime, new_mtime))
+
+
 class TestRun(MypycDataSuite):
     """Test cases that build a C extension and run code."""
     files = files
@@ -135,8 +144,10 @@
             steps = []
 
         for operations in steps:
-            if sys.platform.startswith('win'):
-                time.sleep(1)
+            # To make sure that any new changes get picked up as being
+            # new by distutils, shift the mtime of all of the
+            # generated artifacts back by a second.
+            fudge_dir_mtimes(WORKDIR, -2)
 
             step += 1
             with chdir_manager('..'):
@@ -232,7 +243,7 @@
         with open(setup_file, 'w', encoding='utf-8') as f:
             f.write(setup_format.format(module_paths, separate, cfiles, self.multi_file))
 
-        if not run_setup(setup_file, ['build_ext', '--inplace']):
+        if not run_setup(setup_file, ['--verbose', 'build_ext', '--inplace']):
             if testcase.config.getoption('--mypyc-showc'):
                 show_c(cfiles)
             assert False, "Compilation failed"