diff --git a/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsDropDownPanel.java b/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsDropDownPanel.java
index 23017f0..db21817 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsDropDownPanel.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsDropDownPanel.java
@@ -23,11 +23,11 @@
 import com.google.gerrit.plugin.client.extension.Panel;
 import com.google.gerrit.plugin.client.rpc.RestApi;
 import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.Grid;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.InlineHyperlink;
 import com.google.gwt.user.client.ui.InlineLabel;
 
 /**
@@ -80,9 +80,9 @@
       } else if (vote == 0) {
         p.add(new Image(VerifyStatusPlugin.RESOURCES.warning()));
       }
-      InlineHyperlink link = new InlineHyperlink(jobs.get(key).name(), jobs.get(key).url());
-      link.setTitle("view logs");
-      p.add(link);
+      Anchor anchor = new Anchor(jobs.get(key).name(), jobs.get(key).url());
+      anchor.setTitle("view logs");
+      p.add(anchor);
       InlineLabel durlabel = new InlineLabel(" (" + jobs.get(key).duration() + ")");
       durlabel.setTitle("duration");
       p.add(durlabel);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsPanel.java b/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsPanel.java
index 7ace329..de9d373 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsPanel.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsPanel.java
@@ -22,6 +22,7 @@
 import com.google.gerrit.plugin.client.extension.Panel;
 import com.google.gerrit.plugin.client.rpc.RestApi;
 import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.Grid;
 import com.google.gwt.user.client.ui.HorizontalPanel;
@@ -78,10 +79,10 @@
       } else if (vote == 0) {
         p.add(new Image(VerifyStatusPlugin.RESOURCES.warning()));
       }
-      InlineHyperlink link =
-          new InlineHyperlink(jobs.get(key).name(), jobs.get(key).url());
-      link.setTitle("view logs");
-      p.add(link);
+      Anchor anchor =
+          new Anchor(jobs.get(key).name(), jobs.get(key).url());
+      anchor.setTitle("view logs");
+      p.add(anchor);
       InlineLabel label =
           new InlineLabel(" (" + jobs.get(key).duration() + ")");
       label.setTitle("duration");
diff --git a/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsScreen.java b/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsScreen.java
index abaeab0..b85d0bd 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsScreen.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/verifystatus/client/JobsScreen.java
@@ -20,9 +20,9 @@
 import com.google.gerrit.plugin.client.rpc.RestApi;
 import com.google.gerrit.plugin.client.screen.Screen;
 import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.FlexTable;
 import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.InlineHyperlink;
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
 
@@ -95,8 +95,8 @@
       } else if (vote == 0) {
         t.setWidget(row, 0, new Image(VerifyStatusPlugin.RESOURCES.warning()));
       }
-      InlineHyperlink link = new InlineHyperlink(vi.name(), vi.url());
-      t.setWidget(row, 1, link);
+      Anchor anchor = new Anchor(vi.name(), vi.url());
+      t.setWidget(row, 1, anchor);
       t.setText(row, 2, vi.duration());
       if (vi.abstain()) {
         t.setText(row, 3, "non-voting");
