diff --git a/dfp.module b/dfp.module
index ace19ae..04ff26b 100755
--- a/dfp.module
+++ b/dfp.module
@@ -879,7 +879,7 @@ function dfp_token_replace($text, $tag = NULL, array $options = array()) {
   // reliably.
   $key = _dfp_token_replace_make_key($text, $data);
 
-  $cache_item = DFP_TOKEN_CACHE . ':' . current_path();
+  $cache_item = DFP_TOKEN_CACHE . ':' . (module_exists('domain') ? domain_get_domain()['domain_id'] . '/' : '') . current_path();
 
   // Lookup any already-cached token replacements.
   if (is_null($processed_strings)) {
diff --git a/tests/dfp.test b/tests/dfp.test
index 48480fa..bad8955 100644
--- a/tests/dfp.test
+++ b/tests/dfp.test
@@ -437,6 +437,21 @@ class dfpTokensTest extends dfpBaseTest {
     }
   }
 
+  function testTokenCache() {
+    $edit = $this->dfpBasicTagEditValues();
+
+    // Create a tag that uses the site name token in a target.
+    $edit['targeting[0][target]'] = 'site name';
+    $edit['targeting[0][value]'] = '[site:name]';
+    $tag = $this->createTag($edit);
+
+    $this->drupalGet('admin/structure/dfp_ads');
+    // Change the site name.
+    variable_set('site_name', 'DFP rules');
+    $this->drupalGet('admin/structure/dfp_ads');
+    $this->assertPropertySet('Targeting', 'site name', 'DFP rules');
+  }
+
 }
 
 class dfpGlobalsTest extends dfpBaseTest {
