diff --git a/src/main/java/com/google/gerrit/client/admin/AdminConstants.java b/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
index b260e1c..bdbbd41 100644
--- a/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
+++ b/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
@@ -64,6 +64,7 @@
   String columnRightRange();
 
   String columnBranchName();
+  String columnBranchRevision();
   String initialRevision();
   String buttonAddBranch();
   String buttonDeleteBranch();
diff --git a/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties b/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
index b8ea8fb..4b24fe6 100644
--- a/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
+++ b/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
@@ -45,6 +45,7 @@
 columnRightRange = Permitted Range
 
 columnBranchName = Branch Name
+columnBranchRevision = Revision
 initialRevision = Initial Revision
 buttonAddBranch = Create Branch
 buttonDeleteBranch = Delete
diff --git a/src/main/java/com/google/gerrit/client/admin/ProjectBranchesPanel.java b/src/main/java/com/google/gerrit/client/admin/ProjectBranchesPanel.java
index 429f690..c3fbe50 100644
--- a/src/main/java/com/google/gerrit/client/admin/ProjectBranchesPanel.java
+++ b/src/main/java/com/google/gerrit/client/admin/ProjectBranchesPanel.java
@@ -212,12 +212,13 @@
     BranchesTable() {
       table.setWidth("");
       table.setText(0, 2, Util.C.columnBranchName());
-      table.setHTML(0, 3, "&nbsp;");
+      table.setText(0, 3, Util.C.columnBranchRevision());
 
       final FlexCellFormatter fmt = table.getFlexCellFormatter();
       fmt.addStyleName(0, 1, S_ICON_HEADER);
       fmt.addStyleName(0, 2, S_DATA_HEADER);
       fmt.addStyleName(0, 3, S_DATA_HEADER);
+      fmt.addStyleName(0, 4, S_DATA_HEADER);
     }
 
     void deleteChecked() {
@@ -265,17 +266,21 @@
 
       table.setWidget(row, 1, new CheckBox());
       table.setText(row, 2, k.getShortName());
+
+      if (k.getRevision() != null) {
+        table.setText(row, 3, k.getRevision().get());
+      }
+
       if (c != null) {
-        table.setWidget(row, 3, new Anchor("(gitweb)", false, c.toBranch(k
+        table.setWidget(row, 4, new Anchor("(gitweb)", false, c.toBranch(k
             .getNameKey())));
-      } else {
-        table.setHTML(row, 3, "&nbsp;");
       }
 
       final FlexCellFormatter fmt = table.getFlexCellFormatter();
       fmt.addStyleName(row, 1, S_ICON_CELL);
       fmt.addStyleName(row, 2, S_DATA_CELL);
       fmt.addStyleName(row, 3, S_DATA_CELL);
+      fmt.addStyleName(row, 4, S_DATA_CELL);
 
       setRowItem(row, k);
     }
diff --git a/src/main/java/com/google/gerrit/server/rpc/project/ListBranches.java b/src/main/java/com/google/gerrit/server/rpc/project/ListBranches.java
index 0b16b1d..e0b66d4 100644
--- a/src/main/java/com/google/gerrit/server/rpc/project/ListBranches.java
+++ b/src/main/java/com/google/gerrit/server/rpc/project/ListBranches.java
@@ -16,6 +16,7 @@
 
 import com.google.gerrit.client.reviewdb.Branch;
 import com.google.gerrit.client.reviewdb.Project;
+import com.google.gerrit.client.reviewdb.RevId;
 import com.google.gerrit.git.GitRepositoryManager;
 import com.google.gerrit.server.project.NoSuchProjectException;
 import com.google.gerrit.server.project.ProjectControl;
@@ -68,6 +69,9 @@
         final String name = ref.getOrigName();
         if (name.startsWith(Constants.R_HEADS)) {
           final Branch b = new Branch(new Branch.NameKey(projectName, name));
+          if (ref.getObjectId() != null) {
+            b.setRevision(new RevId(ref.getObjectId().name()));
+          }
           branches.add(b);
         }
       }
