diff --git a/page_title.module b/page_title.module
old mode 100644
new mode 100755
index b643e92..f25a390
--- a/page_title.module
+++ b/page_title.module
@@ -536,7 +536,8 @@ function page_title_set_title($title = NULL) {
  */
 function page_title_page_get_title($raw = FALSE) {
   static $title = NULL;
-
+  global $page_title_process_tokens;
+  
   if (is_null($title)) {
     // Initialize some variables we need
     $page_title_pattern = '';
@@ -559,8 +560,12 @@ function page_title_page_get_title($raw = FALSE) {
     // Append the pattern for pages with a pager on them
     $page_title_pattern .= isset($_REQUEST['page']) ? variable_get('page_title_pager_pattern', '') : '';
 
+    // Set special flag so our token function start real processing.
+    $page_title_process_tokens = TRUE;
+    
     // Apply token patterns by resetting the token cache first and then using token_replace_multiple to insert token values
     token_get_values('global', NULL, TRUE);
+    
     $title = token_replace_multiple($page_title_pattern, $types);
   }
 
@@ -582,11 +587,20 @@ function page_title_page_get_title($raw = FALSE) {
  *   array An array of Token ID and Token Value pairs
  */
 function page_title_token_values($type) {
+  global $page_title_process_tokens;
   $values = array();
 
   if ($type == 'global') {
-    $values['page-title'] = page_title_get_title();
-    $values['page-title-raw'] = page_title_get_title(TRUE);
+    if ($page_title_process_tokens) {
+      $values['page-title'] = page_title_get_title();
+      $values['page-title-raw'] = page_title_get_title(TRUE);
+    }
+    else {
+      // Return junk tokens.
+      // There's no point calculating page title until their dependencies are 
+      // ready.
+      $values['page-title'] = $values['page-title-raw'] = '';
+    }
   }
 
   return $values;
