diff --git a/dev/core/src/com/google/gwt/core/ext/linker/BinaryEmittedArtifact.java b/dev/core/src/com/google/gwt/core/ext/linker/BinaryEmittedArtifact.java
index 1828b1f..54679fb 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/BinaryEmittedArtifact.java
+++ b/dev/core/src/com/google/gwt/core/ext/linker/BinaryEmittedArtifact.java
@@ -31,4 +31,10 @@
   protected BinaryEmittedArtifact(String partialPath) {
     super(StandardLinkerContext.class, partialPath);
   }
+  
+  /**
+   * Force subclasses to define.
+   */
+  @Override
+  public abstract long getLastModified();
 }
diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/BinaryOnlyArtifactWrapper.java b/dev/core/src/com/google/gwt/core/ext/linker/impl/BinaryOnlyArtifactWrapper.java
index 3cf6fca..b3c868b 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/BinaryOnlyArtifactWrapper.java
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/BinaryOnlyArtifactWrapper.java
@@ -40,4 +40,9 @@
       throws UnableToCompleteException {
     return underlyingArtifact.getContents(logger);
   }
+
+  @Override
+  public long getLastModified() {
+    return underlyingArtifact.getLastModified();
+  }
 }
diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/JarEntryEmittedArtifact.java b/dev/core/src/com/google/gwt/core/ext/linker/impl/JarEntryEmittedArtifact.java
index 1c1885e..89678d2 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/JarEntryEmittedArtifact.java
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/JarEntryEmittedArtifact.java
@@ -83,4 +83,9 @@
       throw new UnableToCompleteException();
     }
   }
+
+  @Override
+  public long getLastModified() {
+    return entry.getTime();
+  }
 }
diff --git a/dev/core/src/com/google/gwt/dev/Link.java b/dev/core/src/com/google/gwt/dev/Link.java
index cbaf113..eaa6ae4 100644
--- a/dev/core/src/com/google/gwt/dev/Link.java
+++ b/dev/core/src/com/google/gwt/dev/Link.java
@@ -154,10 +154,10 @@
         module, precompileOptions);
     ArtifactSet artifacts = doSimulatedShardingLink(logger, module,
         linkerContext, generatedArtifacts, permutations, resultFiles);
-    OutputFileSet outFileSet = new OutputFileSetOnDirectory(outDir,
-        module.getName() + "/");
-    OutputFileSet extraFileSet = new OutputFileSetOnDirectory(outDir,
-        module.getName() + "-aux/");
+    OutputFileSet outFileSet = chooseOutputFileSet(outDir, module.getName()
+        + "/");
+    OutputFileSet extraFileSet = chooseOutputFileSet(outDir, module.getName()
+        + "-aux/");
     doProduceOutput(logger, artifacts, linkerContext, outFileSet, extraFileSet);
   }
 
@@ -216,7 +216,9 @@
         } else {
           jarEntryPath = "target/" + art.getPartialPath();
         }
-        jar.putNextEntry(new ZipEntry(jarEntryPath));
+        ZipEntry ze = new ZipEntry(jarEntryPath);
+        ze.setTime(art.getLastModified());
+        jar.putNextEntry(ze);
         art.writeTo(logger, jar);
         jar.closeEntry();
       }
