diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/HighlightingInlineHyperlink.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/HighlightingInlineHyperlink.java
index 255f823..00825a3 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/HighlightingInlineHyperlink.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/HighlightingInlineHyperlink.java
@@ -14,7 +14,6 @@
 
 package com.google.gerrit.client.ui;
 
-import com.google.gwtexpui.safehtml.client.SafeHtmlBuilder;
 
 public class HighlightingInlineHyperlink extends InlineHyperlink {
 
@@ -34,27 +33,6 @@
   }
 
   private void highlight(final String text, final String toHighlight) {
-    if (toHighlight == null || "".equals(toHighlight)) {
-      return;
-    }
-
-    final SafeHtmlBuilder b = new SafeHtmlBuilder();
-    int pos = 0;
-    int endPos = 0;
-    while ((pos = text.toLowerCase().indexOf(
-        toHighlight.toLowerCase(), pos)) > -1) {
-      if (pos > endPos) {
-        b.append(text.substring(endPos, pos));
-      }
-      endPos = pos + toHighlight.length();
-      b.openElement("b");
-      b.append(text.substring(pos, endPos));
-      b.closeElement("b");
-      pos = endPos;
-    }
-    if (endPos < text.length()) {
-      b.append(text.substring(endPos));
-    }
-    setHTML(b.toSafeHtml().asString());
+    setHTML(Util.highlight(text, toHighlight));
   }
 }
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Util.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Util.java
index 13d0bd9..804eee1 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Util.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/Util.java
@@ -15,8 +15,35 @@
 package com.google.gerrit.client.ui;
 
 import com.google.gwt.core.client.GWT;
+import com.google.gwtexpui.safehtml.client.SafeHtmlBuilder;
 
 public class Util {
   public static final UIConstants C = GWT.create(UIConstants.class);
   public static final UIMessages M = GWT.create(UIMessages.class);
+
+  public static String highlight(final String text, final String toHighlight) {
+    final SafeHtmlBuilder b = new SafeHtmlBuilder();
+    if (toHighlight == null || "".equals(toHighlight)) {
+      b.append(text);
+      return b.toSafeHtml().asString();
+    }
+
+    int pos = 0;
+    int endPos = 0;
+    while ((pos = text.toLowerCase().indexOf(
+        toHighlight.toLowerCase(), pos)) > -1) {
+      if (pos > endPos) {
+        b.append(text.substring(endPos, pos));
+      }
+      endPos = pos + toHighlight.length();
+      b.openElement("b");
+      b.append(text.substring(pos, endPos));
+      b.closeElement("b");
+      pos = endPos;
+    }
+    if (endPos < text.length()) {
+      b.append(text.substring(endPos));
+    }
+    return b.toSafeHtml().asString();
+  }
 }
