Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.756.2.48
diff -u -p -r1.756.2.48 common.inc
--- includes/common.inc	25 Feb 2009 23:16:45 -0000	1.756.2.48
+++ includes/common.inc	8 Apr 2009 20:08:43 -0000
@@ -115,6 +115,17 @@ function drupal_set_html_head($data = NU
  */
 function drupal_get_html_head() {
   $output = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
+  // Construct the head title.
+  if ($title = drupal_get_title()) {
+    $head_title = array(strip_tags($title), variable_get('site_name', 'Drupal'));
+  }
+  else {
+    $head_title = array(variable_get('site_name', 'Drupal'));
+    if (variable_get('site_slogan', '')) {
+      $head_title[] = variable_get('site_slogan', '');
+    }
+  }
+  $output .= "<title>". theme('head_title', $head_title) ."</title>\n";
   return $output . drupal_set_html_head();
 }
 
@@ -2942,6 +2953,9 @@ function drupal_common_theme() {
       'arguments' => array('content' => NULL, 'show_blocks' => TRUE, 'show_messages' => TRUE),
       'template' => 'page',
     ),
+    'head_title' => array(
+      'arguments' => array('head_title' => NULL),
+    ),
     'maintenance_page' => array(
       'arguments' => array('content' => NULL, 'show_blocks' => TRUE, 'show_messages' => TRUE),
       'template' => 'maintenance-page',
Index: includes/theme.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/theme.inc,v
retrieving revision 1.415.2.19
diff -u -p -r1.415.2.19 theme.inc
--- includes/theme.inc	25 Feb 2009 21:02:16 -0000	1.415.2.19
+++ includes/theme.inc	8 Apr 2009 20:08:43 -0000
@@ -1094,6 +1094,18 @@ function theme_placeholder($text) {
 }
 
 /**
+ * Theme the text to be placed inside the title tags in the page head.
+ *
+ * @param $head_title
+ *   An array of text elements, such as the site name.
+ * @return
+ *   The formatted text (plain text).
+ */
+function theme_head_title($head_title = array()) {
+  return implode(' | ', $head_title);
+}
+
+/**
  * Return a themed set of status and/or error messages. The messages are grouped
  * by type.
  *
@@ -1785,17 +1797,6 @@ function template_preprocess_page(&$vari
     $mission = filter_xss_admin(theme_get_setting('mission'));
   }
 
-  // Construct page title
-  if (drupal_get_title()) {
-    $head_title = array(strip_tags(drupal_get_title()), variable_get('site_name', 'Drupal'));
-  }
-  else {
-    $head_title = array(variable_get('site_name', 'Drupal'));
-    if (variable_get('site_slogan', '')) {
-      $head_title[] = variable_get('site_slogan', '');
-    }
-  }
-  $variables['head_title']        = implode(' | ', $head_title);
   $variables['base_path']         = base_path();
   $variables['front_page']        = url();
   $variables['breadcrumb']        = theme('breadcrumb', drupal_get_breadcrumb());
Index: themes/bluemarine/page.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/bluemarine/Attic/page.tpl.php,v
retrieving revision 1.28
diff -u -p -r1.28 page.tpl.php
--- themes/bluemarine/page.tpl.php	24 Jan 2008 09:42:52 -0000	1.28
+++ themes/bluemarine/page.tpl.php	8 Apr 2009 20:08:43 -0000
@@ -4,7 +4,6 @@
 <html xmlns="http://www.w3.org/1999/xhtml" lang="<?php print $language->language ?>" xml:lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
 
 <head>
-  <title><?php print $head_title ?></title>
   <?php print $head ?>
   <?php print $styles ?>
   <?php print $scripts ?>
Index: themes/chameleon/chameleon.theme
===================================================================
RCS file: /cvs/drupal/drupal/themes/chameleon/Attic/chameleon.theme,v
retrieving revision 1.76
diff -u -p -r1.76 chameleon.theme
--- themes/chameleon/chameleon.theme	24 Jan 2008 09:42:53 -0000	1.76
+++ themes/chameleon/chameleon.theme	8 Apr 2009 20:08:43 -0000
@@ -30,7 +30,6 @@ function chameleon_page($content, $show_
   $output  = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
   $output .= "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"$language\" xml:lang=\"$language\" dir=\"$direction\">\n";
   $output .= "<head>\n";
-  $output .= " <title>". ($title ? strip_tags($title) ." | ". variable_get("site_name", "Drupal") : variable_get("site_name", "Drupal") ." | ". variable_get("site_slogan", "")) ."</title>\n";
   $output .= drupal_get_html_head();
   $output .= drupal_get_css();
   $output .= drupal_get_js();
Index: themes/garland/page.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/garland/page.tpl.php,v
retrieving revision 1.18
diff -u -p -r1.18 page.tpl.php
--- themes/garland/page.tpl.php	24 Jan 2008 09:42:53 -0000	1.18
+++ themes/garland/page.tpl.php	8 Apr 2009 20:08:43 -0000
@@ -4,7 +4,6 @@
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
   <head>
-    <title><?php print $head_title ?></title>
     <?php print $head ?>
     <?php print $styles ?>
     <?php print $scripts ?>
Index: themes/pushbutton/page.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/pushbutton/Attic/page.tpl.php,v
retrieving revision 1.25.2.1
diff -u -p -r1.25.2.1 page.tpl.php
--- themes/pushbutton/page.tpl.php	29 Sep 2008 13:32:15 -0000	1.25.2.1
+++ themes/pushbutton/page.tpl.php	8 Apr 2009 20:08:43 -0000
@@ -3,7 +3,6 @@
 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" lang="<?php print $language->language ?>" xml:lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
 <head>
-  <title><?php print $head_title ?></title>
   <meta http-equiv="Content-Style-Type" content="text/css" />
   <?php print $head ?>
   <?php print $styles ?>
