diff --git a/java/com/google/gitiles/HtmlDiffFormatter.java b/java/com/google/gitiles/HtmlDiffFormatter.java
index 76df04c..5d5a3b8 100644
--- a/java/com/google/gitiles/HtmlDiffFormatter.java
+++ b/java/com/google/gitiles/HtmlDiffFormatter.java
@@ -25,6 +25,7 @@
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.text.StringEscapeUtils;
+import org.eclipse.jgit.diff.DiffDriver;
 import org.eclipse.jgit.diff.DiffEntry;
 import org.eclipse.jgit.diff.DiffEntry.ChangeType;
 import org.eclipse.jgit.diff.DiffFormatter;
@@ -68,6 +69,12 @@
 
   @Override
   public void format(FileHeader hdr, RawText a, RawText b) throws IOException {
+    format(hdr, a, b, null);
+  }
+
+  @Override
+  public void format(FileHeader hdr, RawText a, RawText b, DiffDriver diffDriver)
+      throws IOException {
     int start = hdr.getStartOffset();
     int end = hdr.getEndOffset();
     if (!hdr.getHunks().isEmpty()) {
@@ -77,7 +84,7 @@
 
     if (hdr.getPatchType() == PatchType.UNIFIED) {
       getOutputStream().write(DIFF_BEGIN);
-      format(hdr.toEditList(), a, b);
+      format(hdr.toEditList(), a, b, diffDriver);
       getOutputStream().write(DIFF_END);
     }
   }
@@ -129,9 +136,16 @@
   @Override
   protected void writeHunkHeader(int aStartLine, int aEndLine, int bStartLine, int bEndLine)
       throws IOException {
+    writeHunkHeader(aStartLine, aEndLine, bStartLine, bEndLine, null);
+  }
+
+  @Override
+  protected void writeHunkHeader(
+      int aStartLine, int aEndLine, int bStartLine, int bEndLine, String funcName)
+      throws IOException {
     getOutputStream().write(HUNK_BEGIN);
-    // TODO(sop): If hunk header starts including method names, escape it.
-    super.writeHunkHeader(aStartLine, aEndLine, bStartLine, bEndLine);
+    super.writeHunkHeader(
+        aStartLine, aEndLine, bStartLine, bEndLine, StringEscapeUtils.escapeHtml4(funcName));
     getOutputStream().write(HUNK_END);
   }
 
diff --git a/modules/jgit b/modules/jgit
index 692ccfc..2c86ef2 160000
--- a/modules/jgit
+++ b/modules/jgit
@@ -1 +1 @@
-Subproject commit 692ccfc0c29d53afc7a0b82f41efcd999ed217b0
+Subproject commit 2c86ef2427ad3c65bfa4dee90311408255869638
