Index: HtmlPublisherTarget.java
===================================================================
--- HtmlPublisherTarget.java	(revision 30680)
+++ HtmlPublisherTarget.java	(working copy)
@@ -20,7 +20,7 @@
 
 /**
  * A representation of an HTML directory to archive and publish.
- * 
+ *
  * @author Mike Rooney
  *
  */
@@ -29,7 +29,7 @@
      * The name of the report to display for the build/project, such as "Code Coverage"
      */
     private final String reportName;
-    
+
     /**
      * The path to the HTML report directory relative to the workspace.
      */
@@ -61,33 +61,33 @@
     public String getReportName() {
         return this.reportName;
     }
-    
+
     public String getReportDir() {
         return this.reportDir;
     }
-    
+
     public String getReportFiles() {
         return this.reportFiles;
     }
-    
+
     public boolean getKeepAll() {
         return this.keepAll;
     }
-    
+
     public String getSanitizedName() {
         String safeName = this.reportName;
         safeName = safeName.replace(" ", "_");
         return safeName;
     }
-    
+
     public String getWrapperName() {
         return this.wrapperName;
     }
-    
+
     public FilePath getArchiveTarget(AbstractBuild build) {
         return new FilePath(this.keepAll ? getBuildArchiveDir(build) : getProjectArchiveDir(build.getProject()));
     }
-    
+
     /**
      * Gets the directory where the HTML report is stored for the given project.
      */
@@ -100,14 +100,20 @@
     private File getBuildArchiveDir(Run run) {
         return new File(new File(run.getRootDir(), "htmlreports"), this.getSanitizedName());
     }
-    
+
     protected abstract class BaseHTMLAction implements Action {
+        private HtmlPublisherTarget actualHtmlPublisherTarget;
+
+        public BaseHTMLAction(HtmlPublisherTarget actualHtmlPublisherTarget) {
+            this.actualHtmlPublisherTarget = actualHtmlPublisherTarget;
+        }
+
         public String getUrlName() {
-            return HtmlPublisherTarget.this.getSanitizedName();
+            return actualHtmlPublisherTarget.getSanitizedName();
         }
 
         public String getDisplayName() {
-            String action = HtmlPublisherTarget.this.reportName;
+            String action = actualHtmlPublisherTarget.reportName;
             return dir().exists() ? action : null;
         }
 
@@ -132,7 +138,8 @@
     public class HTMLAction extends BaseHTMLAction implements ProminentProjectAction {
         private final AbstractItem project;
 
-        public HTMLAction(AbstractItem project) {
+        public HTMLAction(AbstractItem project, HtmlPublisherTarget actualHtmlPublisherTarget) {
+            super(actualHtmlPublisherTarget);
             this.project = project;
         }
 
@@ -163,7 +170,8 @@
     public class HTMLBuildAction extends BaseHTMLAction {
         private final AbstractBuild<?, ?> build;
 
-        public HTMLBuildAction(AbstractBuild<?, ?> build) {
+        public HTMLBuildAction(AbstractBuild<?, ?> build, HtmlPublisherTarget actualHtmlPublisherTarget) {
+            super(actualHtmlPublisherTarget);
             this.build = build;
         }
 
@@ -181,11 +189,11 @@
     public void handleAction(AbstractBuild<?, ?> build) {
         // Add build action, if coverage is recorded for each build
         if (this.keepAll) {
-            build.addAction(new HTMLBuildAction(build));
+            build.addAction(new HTMLBuildAction(build, this));
         }
     }
-    
+
     public Action getProjectAction(AbstractProject project) {
-        return new HTMLAction(project);
+        return new HTMLAction(project, this);
     }
 }
\ No newline at end of file