diff --git a/java/com/google/gitiles/DebugRenderer.java b/java/com/google/gitiles/DebugRenderer.java
index 83ddd9e..5e4c466 100644
--- a/java/com/google/gitiles/DebugRenderer.java
+++ b/java/com/google/gitiles/DebugRenderer.java
@@ -48,7 +48,7 @@
 
   @Override
   protected SoySauce getSauce() {
-    SoyFileSet.Builder builder = SoyFileSet.builder().setCompileTimeGlobals(globals);
+    SoyFileSet.Builder builder = SoyFileSet.builder();
     for (URL template : templates.values()) {
       try {
         checkState(new File(template.toURI()).exists(), "Missing Soy template %s", template);
diff --git a/java/com/google/gitiles/DefaultRenderer.java b/java/com/google/gitiles/DefaultRenderer.java
index 0599034..48d8554 100644
--- a/java/com/google/gitiles/DefaultRenderer.java
+++ b/java/com/google/gitiles/DefaultRenderer.java
@@ -45,7 +45,7 @@
         staticPrefix,
         customTemplates,
         siteTitle);
-    SoyFileSet.Builder builder = SoyFileSet.builder().setCompileTimeGlobals(this.globals);
+    SoyFileSet.Builder builder = SoyFileSet.builder();
     for (URL template : templates.values()) {
       builder.add(template, toSoySrcPath(template));
     }
diff --git a/java/com/google/gitiles/Renderer.java b/java/com/google/gitiles/Renderer.java
index 780ee90..957e50d 100644
--- a/java/com/google/gitiles/Renderer.java
+++ b/java/com/google/gitiles/Renderer.java
@@ -95,6 +95,7 @@
 
   protected ImmutableMap<String, URL> templates;
   protected ImmutableMap<String, String> globals;
+  protected final String siteTitle;
   private final ConcurrentMap<String, HashCode> hashes =
       new ConcurrentHashMap<>(SOY_FILENAMES.size());
 
@@ -119,9 +120,9 @@
     for (Map.Entry<String, String> e : STATIC_URL_GLOBALS.entrySet()) {
       allGlobals.put(e.getKey(), staticPrefix + e.getValue());
     }
-    allGlobals.put("gitiles.SITE_TITLE", siteTitle);
     allGlobals.putAll(globals);
     this.globals = ImmutableMap.copyOf(allGlobals);
+    this.siteTitle = siteTitle;
   }
 
   public HashCode getTemplateHash(String soyFile) {
@@ -221,7 +222,7 @@
     }
     return getSauce()
         .renderTemplate(templateName)
-        .setIj(ImmutableMap.of("staticUrls", staticUrls.build()));
+        .setIj(ImmutableMap.of("staticUrls", staticUrls.build(), "SITE_TITLE", siteTitle));
   }
 
   protected abstract SoySauce getSauce();
diff --git a/resources/com/google/gitiles/templates/Common.soy b/resources/com/google/gitiles/templates/Common.soy
index af1c49e..4b52d3b 100644
--- a/resources/com/google/gitiles/templates/Common.soy
+++ b/resources/com/google/gitiles/templates/Common.soy
@@ -27,6 +27,7 @@
   {@param? css: list<?>}  /** optional list of CSS URLs to include. */
   {@param? containerClass: ?}  /** optional class to append to the main container. */
   {@inject staticUrls: ?}
+  {@inject SITE_TITLE: string}
 <!DOCTYPE html>
 <html lang="en">
 <head>
@@ -36,7 +37,9 @@
     {if $repositoryName}
       {sp}- {$repositoryName}
     {/if}
-    {sp}- {msg desc="name of the application"}{gitiles.SITE_TITLE}{/msg}
+    {sp}- {msg desc="name of the application"}
+      {$SITE_TITLE}
+    {/msg}
   </title>
 
   <link rel="stylesheet" type="text/css" href="{$staticUrls.BASE_CSS_URL}">
@@ -99,9 +102,12 @@
  * Default custom header implementation for Gitiles.
  */
 {deltemplate gitiles.customHeader}
+  {@inject SITE_TITLE: string}
 <!-- default customHeader -->
 <div class="Header-title">
-  {msg desc="short name of the application"}{gitiles.SITE_TITLE}{/msg}
+  {msg desc="short name of the application"}
+    {$SITE_TITLE}
+  {/msg}
 </div>
 {/deltemplate}
 
