diff --git a/server-webapp/src/main/java/org/taverna/server/master/common/Uri.java b/server-webapp/src/main/java/org/taverna/server/master/common/Uri.java
index 20d30ef..c70670b 100644
--- a/server-webapp/src/main/java/org/taverna/server/master/common/Uri.java
+++ b/server-webapp/src/main/java/org/taverna/server/master/common/Uri.java
@@ -23,7 +23,6 @@
 
 import org.apache.commons.logging.Log;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Required;
 import org.springframework.security.web.PortMapper;
 
 import edu.umd.cs.findbugs.annotations.NonNull;
@@ -147,7 +146,6 @@
 		}
 
 		@Autowired
-		@Required
 		public void setPortMapper(PortMapper portMapper) {
 			this.portMapper = portMapper;
 		}
diff --git a/server-webapp/src/main/java/org/taverna/server/master/facade/Facade.java b/server-webapp/src/main/java/org/taverna/server/master/facade/Facade.java
index 9f46266..0015754 100644
--- a/server-webapp/src/main/java/org/taverna/server/master/facade/Facade.java
+++ b/server-webapp/src/main/java/org/taverna/server/master/facade/Facade.java
@@ -67,10 +67,7 @@
 	@Path("{dummy:.*}")
 	@Produces("text/html")
 	public Response get(@Context UriInfo ui) {
-		String url = ui.getBaseUri().toString().replace("%2D", "-");
-		if (!url.endsWith("/"))
-			url += "/";
-		return ok(contextualizer.contextualize(welcome), TEXT_HTML_TYPE)
+		return ok(contextualizer.contextualize(ui, welcome), TEXT_HTML_TYPE)
 				.build();
 	}
 }
diff --git a/server-webapp/src/main/java/org/taverna/server/master/utils/Contextualizer.java b/server-webapp/src/main/java/org/taverna/server/master/utils/Contextualizer.java
index 19596bb..884ff94 100644
--- a/server-webapp/src/main/java/org/taverna/server/master/utils/Contextualizer.java
+++ b/server-webapp/src/main/java/org/taverna/server/master/utils/Contextualizer.java
@@ -6,6 +6,7 @@
 package org.taverna.server.master.utils;
 
 import javax.servlet.ServletContext;
+import javax.ws.rs.core.UriInfo;
 
 import org.springframework.web.context.ServletContextAware;
 import org.taverna.server.master.common.version.Version;
@@ -19,6 +20,7 @@
 public class Contextualizer implements ServletContextAware {
 	static final String ROOT_PLACEHOLDER = "%{WEBAPPROOT}";
 	static final String VERSION_PLACEHOLDER = "%{VERSION}";
+	static final String BASE_PLACEHOLDER = "%{BASEURL}";
 
 	/**
 	 * Apply the contextualization operation. This consists of replacing the
@@ -35,6 +37,26 @@
 				VERSION_PLACEHOLDER, Version.JAVA);
 	}
 
+	/**
+	 * Apply the contextualization operation. This consists of replacing the
+	 * string <tt>{@value #ROOT_PLACEHOLDER}</tt> with the real root of the
+	 * webapp.
+	 * 
+	 * @param ui
+	 *            Where to get information about the URL used to access the
+	 *            webapp.
+	 * @param input
+	 *            the string to contextualize
+	 * @return the contextualized string
+	 */
+	public String contextualize(UriInfo ui, String input) {
+		// Hack to work around bizarre CXF bug
+		String baseuri = ui.getBaseUri().toString().replace("%2D", "-");
+		if (baseuri.endsWith("/"))
+			baseuri = baseuri.substring(0, baseuri.length() - 1);
+		return contextualize(input).replace(BASE_PLACEHOLDER, baseuri);
+	}
+
 	private ServletContext context;
 
 	@Override
diff --git a/server-webapp/src/main/resources/welcome.html b/server-webapp/src/main/resources/welcome.html
index 6430d5a..856f3e2 100644
--- a/server-webapp/src/main/resources/welcome.html
+++ b/server-webapp/src/main/resources/welcome.html
@@ -7,7 +7,7 @@
 <body>
 <h1>Taverna Server %{VERSION}</h1>
 <p>For a full list of operations, see the <a
-    href="%{WEBAPPROOT}/services">service listing</a> generated by Apache
+    href="%{BASEURL}/services">service listing</a> generated by Apache
 CXF, which indicates where to access the WSDL and WADL descriptions of
 the T2Server interface.</p>
 <p>What follows below is a simple guide to using the server. It does
@@ -21,11 +21,11 @@
 <ol>
   <li>
   <p>The client starts by creating a workflow run. This is done by POSTing a
-  T2flow document to the service at the address <tt>%{WEBAPPROOT}/rest/runs</tt>
+  T2flow document to the service at the address <tt>%{BASEURL}/rest/runs</tt>
   with the content type <tt>application/vnd.taverna.t2flow+xml</tt>.</p>
   <p>The result of the POST is an <tt>HTTP 201 Created</tt> that gives the
   location of the created run (in a <tt>Location</tt> header),
-  <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b></tt> (where <tt><b>UUID</b></tt> is a
+  <tt>%{BASEURL}/rest/runs/<b>UUID</b></tt> (where <tt><b>UUID</b></tt> is a
   unique string that identifies the particular run; this is also the name of
   the run that you would use in the SOAP interface). Note that the run is not
   yet actually doing anything.</p>
@@ -34,7 +34,7 @@
   <p>Next, you need to set up the inputs to the workflow ports. To set the
   input port, <tt><b>FOO</b></tt>, to have the value <tt><b>BAR</b></tt>, you
   would PUT a message like this to the URI
-  <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b>/input/input/<b>FOO</b></tt>
+  <tt>%{BASEURL}/rest/runs/<b>UUID</b>/input/input/<b>FOO</b></tt>
   </p>
   <blockquote><pre>&lt;t2sr:runInput xmlns:t2sr=&quot;http://ns.taverna.org.uk/2010/xml/server/rest/&quot;&gt;
     &lt;t2sr:value&gt;<b>BAR</b>&lt;/t2sr:value&gt;
@@ -42,13 +42,13 @@
   </li>
   <li>
   <p>Now you can start the file running. This is done by using a PUT to set
-  <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b>/status</tt> to the plain text value
+  <tt>%{BASEURL}/rest/runs/<b>UUID</b>/status</tt> to the plain text value
   <tt>Operating</tt>.</p>
   </li>
   <li>
   <p>Now you need to poll, waiting for the workflow to finish. To discover the
   state of a run, you can (at any time) do a GET on
-  <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b>/status</tt>; when the workflow has
+  <tt>%{BASEURL}/rest/runs/<b>UUID</b>/status</tt>; when the workflow has
   finished executing, this will return <tt>Finished</tt> instead of
   <tt>Operating</tt> (or <tt>Initialized</tt>, the starting state).</p>
   </li>
@@ -57,7 +57,7 @@
   and all resources (i.e., local files) associated with it cleaned up. By
   default in this release, this is 20 minutes after initial creation. To see
   when a particular run is scheduled to be disposed of, do a GET on
-  <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b>/expiry</tt>; you may set the time when
+  <tt>%{BASEURL}/rest/runs/<b>UUID</b>/expiry</tt>; you may set the time when
   the run is disposed of by PUTting a new time to that same URI. Note that
   this includes not just the time when the workflow is executing, but also
   when the input files are being created beforehand and when the results are
@@ -68,19 +68,19 @@
   <p>The outputs from the workflow are files created in the <tt>out</tt>
   subdirectory of the run's working directory. The contents of the
   subdirectory can be read by doing a GET on
-  <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b>/wd/out</tt> which will return an XML
+  <tt>%{BASEURL}/rest/runs/<b>UUID</b>/wd/out</tt> which will return an XML
   document describing the contents of the directory, with links to each of the
   files within it. Doing a GET on those links will retrieve the actual created
   files (as uninterpreted binary data).</p>
   <p>Thus, if a single output <tt><b>FOO.OUT</b></tt> was produced from the
   workflow, it would be written to the file that can be retrieved from
-  <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b>/wd/out/<b>FOO.OUT</b></tt> and the
-  result of the GET on <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b>/wd/out</tt> would
+  <tt>%{BASEURL}/rest/runs/<b>UUID</b>/wd/out/<b>FOO.OUT</b></tt> and the
+  result of the GET on <tt>%{BASEURL}/rest/runs/<b>UUID</b>/wd/out</tt> would
   look something like this:</p>
   <blockquote><pre>&lt;t2sr:directoryContents xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:t2sr="http://ns.taverna.org.uk/2010/xml/server/rest"
         xmlns:t2s="http://ns.taverna.org.uk/2010/xml/server/"&gt;
-    &lt;t2s:file xlink:href="%{WEBAPPROOT}/rest/runs/<b>UUID</b>/wd/out/<b>FOO.OUT</b>"
+    &lt;t2s:file xlink:href="%{BASEURL}/rest/runs/<b>UUID</b>/wd/out/<b>FOO.OUT</b>"
             t2sr:name="<b>FOO.OUT</b>"&gt;out/<b>FOO.OUT</b>&lt;/t2s:file&gt;
 &lt;/t2sr:directoryContents&gt;</pre></blockquote>
   </li>
@@ -88,7 +88,7 @@
   <p>The standard output and standard error from the T2 Command Line Executor
   subprocess can be read via properties of the special I/O listener. To do
   that, do a GET on
-  <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b>/listeners/io/properties/<b>stdout</b></tt>
+  <tt>%{BASEURL}/rest/runs/<b>UUID</b>/listeners/io/properties/<b>stdout</b></tt>
   (or <tt>.../<b>stderr</b></tt>). Once the subprocess has finished executing,
   the I/O listener will provide a third property containing the exit code of
   the subprocess, called <tt>exitcode</tt>.</p> <p>Note that the supported set
@@ -97,14 +97,14 @@
   </li>
   <li>
   <p>Once you have finished, destroy the run by doing a DELETE on
-  <tt>%{WEBAPPROOT}/rest/runs/<b>UUID</b></tt>. Once you have done that, none of
+  <tt>%{BASEURL}/rest/runs/<b>UUID</b></tt>. Once you have done that, none of
   the resources associated with the run (including both input and output
   files) will exist any more. If the run is still executing, this will also
   cause it to be stopped.</p>
   </li>
 </ol>
 <p>All operations described above have equivalents in the
-<a href="%{WEBAPPROOT}/soap?wsdl">SOAP service interface</a>.</p>
+<a href="%{BASEURL}/soap?wsdl">SOAP service interface</a>.</p>
 
 <div>
 <hr>
