diff --git a/html/class_passwordRecovery.inc b/html/class_passwordRecovery.inc
index 965dfeeca6e8be9c0990c932be890ce2c0a67be8..d7bd3a5f32d4a0a01237d91c688603d86c056602 100644
--- a/html/class_passwordRecovery.inc
+++ b/html/class_passwordRecovery.inc
@@ -354,6 +354,7 @@ class passwordRecovery extends standAlonePage {
     $lang = session::global_get('lang');
     $smarty->assign('lang', preg_replace('/_.*$/', '', $lang));
     $smarty->assign('rtl', Language::isRTL($lang));
+    $smarty->assign('title',        _('Password recovery'));
     $smarty->display(get_template_path('headers.tpl'));
 
     $smarty->assign('version',        FD_VERSION);
diff --git a/html/index.php b/html/index.php
index 1c1240d5a6ecab214140ed0af21448b5e21aa73f..38918fb6b9315727bcd65363441e0fe0d8e05316 100644
--- a/html/index.php
+++ b/html/index.php
@@ -48,6 +48,7 @@ function displayLogin()
   $smarty->assign ('revision',  FD_VERSION);
   $smarty->assign ('year',      date('Y'));
   $smarty->append ('css_files', get_template_path('login.css'));
+  $smarty->assign('title',      _('Sign in'));
 
   /* Some error to display? */
   if (!isset($message)) {
diff --git a/html/main.php b/html/main.php
index d762e01abc6c61b9facd7501d05a2a42cc4ad5a1..df88d5fb7d34bcf83dba49c208589da699252363 100644
--- a/html/main.php
+++ b/html/main.php
@@ -347,7 +347,6 @@ if (isset($_POST['_channel_'])) {
 } else {
   $smarty->assign("channel", "");
 }
-$smarty->assign ("title", "FusionDirectory");
 
 if (class_available('Game')) {
   $smarty->assign('game_screen', Game::run());
diff --git a/html/setup.php b/html/setup.php
index 7dd25566e4e695d699d16e1ff7662c7c8d60ee04..9167b8bee16e53b159e0f6e88787192fdf50d769 100644
--- a/html/setup.php
+++ b/html/setup.php
@@ -104,29 +104,20 @@ $ui = new fake_userinfo();
 $display = "";
 require_once("../setup/main.inc");
 
-$smarty->assign("date", date("l, dS F Y H:i:s O"));
-$header = $smarty->fetch(get_template_path('headers.tpl'));
-
-
-
-/* Set focus to the error button if we've an error message */
-$focus = "";
-if (session::is_set('errors') && session::get('errors') != "") {
-  $focus = '<script type="text/javascript">';
-  $focus .= 'document.forms[0].error_accept.focus();';
-  $focus .= '</script>';
-}
-
 $focus = '<script type="text/javascript">';
 $focus .= 'next_msg_dialog();';
 $focus .= '</script>';
 
 /* show web frontend */
 $setup = session::global_get('setup');
+
+$smarty->assign('date',           date('l, dS F Y H:i:s O'));
+$smarty->assign('headline',       $setup->get_header_text());
+$header = $smarty->fetch(get_template_path('headers.tpl'));
+
 $smarty->assign("contents",       $display.$setup->get_bottom_html());
 $smarty->assign("navigation",     $setup->get_navigation_html());
 $smarty->assign("headline_image", $setup->get_header_image());
-$smarty->assign("headline",       $setup->get_header_text());
 $smarty->assign("focus",          $focus);
 $smarty->assign('CSRFtoken',      CSRFProtection::getToken());
 $smarty->assign("msg_dialogs",    msg_dialog::get_dialogs());
diff --git a/ihtml/themes/breezy/framework.tpl b/ihtml/themes/breezy/framework.tpl
index ba6b98d155fff9cd70cbf57049f9705644410e85..d3c3d2434c677a1b432d6b9861c0da94623e52c0 100644
--- a/ihtml/themes/breezy/framework.tpl
+++ b/ihtml/themes/breezy/framework.tpl
@@ -14,11 +14,11 @@
           <img src="geticon.php?context=actions&amp;icon=application-exit&amp;size=22" alt="Sign out"/>&nbsp;{t}Sign out{/t}
         </a>
         <a class="plugtop">
-          <img src="{$headline_image|escape}" alt="{t}{$headline}{/t}"/>{t}{$headline}{/t}
+          <img src="{$headline_image|escape}" alt="{t}{$headline|escape}{/t}"/>{t}{$headline|escape}{/t}
         </a>
       </div>
       <div id="header-right">
-        <a><span class="optional">{t}Signed in:{/t} </span><b>{$username}</b></a>
+        <a><span class="optional">{t}Signed in:{/t} </span><b>{$username|escape}</b></a>
         {if ($sessionLifetime > 0)}
         <div class="logout-label">
           <canvas id="sTimeout" width="22" height="22" title="{$sessionLifetime}|{t}Session expires in %d!{/t}"></canvas>
diff --git a/ihtml/themes/breezy/headers.tpl b/ihtml/themes/breezy/headers.tpl
index 6473914017466e416fe5bec394d3f2569b017993..c41a3617aa1dbde88c69138bb52ba8fbb8711143 100644
--- a/ihtml/themes/breezy/headers.tpl
+++ b/ihtml/themes/breezy/headers.tpl
@@ -2,11 +2,11 @@
 <html xmlns="http://www.w3.org/1999/xhtml" {if $lang}lang="{$lang}" xml:lang="{$lang}"{/if} {if $rtl}dir="rtl" class="rtl"{else}class="ltr"{/if}>
 
 <head>
-  <title>{if isset($title)}{$title}{else}FusionDirectory{/if}</title>
+  <title>FusionDirectory{if isset($title)} - {$title|escape}{elseif isset($headline)} - {$headline|escape}{/if}</title>
 
   <meta charset="utf-8"/>
 
-  <meta name="description" content="FusionDirectory - Login"/>
+  <meta name="description" content="FusionDirectory - Your Infrastructure Manager"/>
   <meta name="author" lang="en" content="FusionDirectory Project"/>
   <meta name="viewport" content="width=device-width"/>