diff --git a/src/lib/Hydra/View/TT.pm b/src/lib/Hydra/View/TT.pm
index ab4965b4..ece42f65 100644
--- a/src/lib/Hydra/View/TT.pm
+++ b/src/lib/Hydra/View/TT.pm
@@ -8,7 +8,7 @@ __PACKAGE__->config(
     TEMPLATE_EXTENSION => '.tt',
     PRE_CHOMP => 1,
     POST_CHOMP => 1,
-    expose_methods => [qw/log_exists/]);
+    expose_methods => [qw/log_exists ellipsize/]);
 
 sub log_exists {
     my ($self, $c, $drvPath) = @_;
@@ -16,4 +16,9 @@ sub log_exists {
     return defined $x;
 }
 
+sub ellipsize {
+    my ($self, $c, $s, $n) = @_;
+    return length $s <= $n ? $s : substr($s, 0, $n - 3) . "...";
+}
+
 1;
diff --git a/src/root/topbar.tt b/src/root/topbar.tt
index 3b66ba3d..2bd3a066 100644
--- a/src/root/topbar.tt
+++ b/src/root/topbar.tt
@@ -61,7 +61,7 @@
   [% END %]
 
   [% IF jobset %]
-    [% WRAPPER makeSubMenu title=("Jobset: " _ jobset.name) %]
+    [% WRAPPER makeSubMenu title=("Jobset: " _ ellipsize(jobset.name, 30)) %]
       [% INCLUDE makeLink
         uri = c.uri_for(c.controller('Jobset').action_for('index'), [project.name, jobset.name])
         title = "Overview" %]
@@ -109,7 +109,7 @@
   [% END %]
 
   [% IF job %]
-    [% WRAPPER makeSubMenu title=("Job: " _ job.name) %]
+    [% WRAPPER makeSubMenu title=("Job: " _ ellipsize(job.name, 30)) %]
       [% INCLUDE makeLink
         uri = c.uri_for(c.controller('Job').action_for('overview'), [project.name, jobset.name, job.name])
         title = "Overview" %]