diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java
index 3583461..83ea13a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/ChangeInfo.java
@@ -27,6 +27,7 @@
   public final native NativeMap<RevisionInfo> revisions() /*-{ return this.revisions; }-*/;
   public final native int _number() /*-{ return this._number; }-*/;
   public final native String current_revision() /*-{ return this.current_revision; }-*/;
+  public final native RevisionInfo revision(String n) /*-{ return this.revisions[n]; }-*/;
 
   protected ChangeInfo() {
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java
index 21ddf00..c895091 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/client/PatchSetSelectBox.java
@@ -15,8 +15,12 @@
 package com.googlesource.gerrit.plugins.xdocs.client;
 
 import com.google.gerrit.plugin.client.Plugin;
+import com.google.gwt.core.client.GWT;
 import com.google.gwt.core.client.JsArray;
+import com.google.gwt.http.client.URL;
+import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.FlowPanel;
+import com.google.gwt.user.client.ui.ImageResourceRenderer;
 import com.google.gwt.user.client.ui.InlineHyperlink;
 import com.google.gwt.user.client.ui.Label;
 
@@ -33,6 +37,8 @@
     UNIFIED_DIFF
   }
 
+  private static final String COMMIT_MSG = "/COMMIT_MSG";
+
   private final DiffView diffView;
   private final DisplaySide side;
   private final ChangeInfo change;
@@ -72,6 +78,10 @@
     for (int i = 0; i < list.length(); i++) {
       add(createLink(list.get(i)));
     }
+
+    if (!COMMIT_MSG.equals(path)) {
+      add(createDownloadLink());
+    }
   }
 
   private void addPatchSetLabel() {
@@ -122,6 +132,19 @@
     return link;
   }
 
+  private Anchor createDownloadLink() {
+    String base = GWT.getHostPageBaseURL() + "cat/";
+    String sideUrl = isBaseSelected() ? "1" : "0";
+    int ps = isBaseSelected()
+        ? change.revision(change.current_revision())._number()
+        : getSelectedPatchSet();
+    Anchor anchor = new Anchor(
+        new ImageResourceRenderer().render(XDocsPlugin.RESOURCES.downloadIcon()),
+        base + URL.encode(change._number() + "," + ps + "," + path) + "^" + sideUrl);
+    anchor.setTitle("Download");
+    return anchor;
+  }
+
   private Integer getSelectedPatchSet() {
     return sideA() ? basePatchSet : Integer.valueOf(patchSet);
   }
