diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java
index 045e499..f9ca853 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/CommitSoyData.java
@@ -136,7 +136,7 @@
     }
     checkState(Sets.difference(fs, NESTED_FIELDS).size() == data.size(),
         "bad commit data fields: %s != %s", fs, data.keySet());
-    return ImmutableMap.copyOf(data);
+    return data;
   }
 
   Map<String, Object> toSoyData(HttpServletRequest req, RevCommit commit,
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
index cdfdcf5..7b8036f 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/LogSoyData.java
@@ -64,7 +64,12 @@
     List<Map<String, Object>> entries = Lists.newArrayListWithCapacity(paginator.getLimit());
     for (RevCommit c : paginator) {
       Set<Field> fs = verbose ? VERBOSE_FIELDS : FIELDS;
-      entries.add(new CommitSoyData().setRevWalk(paginator.getWalk()).toSoyData(req, c, fs, df));
+      Map<String, Object> entry = new CommitSoyData().setRevWalk(paginator.getWalk())
+          .toSoyData(req, c, fs, df);
+      if (!entry.containsKey("diffTree")) {
+        entry.put("diffTree", null);
+      }
+      entries.add(entry);
     }
 
     data.put("entries", entries);
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy
index c617a08..af5aed8 100644
--- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy
+++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy
@@ -93,6 +93,7 @@
  * @param committer committer information with at least "time" and "relativeTime" keys.
  * @param branches list of branches for this entry, with "name" and "url" keys.
  * @param tags list of tags for this entry, with "name" and "url" keys.
+ * @param diffTree unused in this variant.
  */
 {deltemplate gitiles.logEntry variant="'oneline'"}
 <a href="{$url}">
@@ -131,6 +132,7 @@
  * @param committer committer information with at least "time" and "relativeTime" keys.
  * @param branches list of branches for this entry, with "name" and "url" keys.
  * @param tags list of tags for this entry, with "name" and "url" keys.
+ * @param diffTree unused in this variant.
  */
 {deltemplate gitiles.logEntry variant="'default'"}
 {delcall gitiles.logEntry variant="'oneline'" data="all" /}
@@ -151,6 +153,7 @@
  * @param committer committer information with at least "time" and "relativeTime" keys.
  * @param branches list of branches for this entry, with "name" and "url" keys.
  * @param tags list of tags for this entry, with "name" and "url" keys.
+ * @param diffTree unused in this variant.
  */
 {deltemplate gitiles.logEntry variant="'full'"}
 <div class="git-commit">
