diff --git a/includes/theme.inc b/includes/theme.inc
index 1894d2a168ce112b566e14f8366fde97dd71ea3b..29da91fe350ab2513b3fa64bf19117a300e6e9f3 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -308,19 +308,19 @@ function theme_get_setting($setting_name, $refresh = FALSE) {
     }
 
     if ($settings['toggle_favicon']) {
+      $settings['favicon'] = $base_path;
       if ($settings['default_favicon']) {
         if (file_exists($favicon = dirname($theme_object->filename) .'/favicon.ico')) {
-          $settings['favicon'] = $favicon;
+          $settings['favicon'] .= $favicon;
         }
         else {
-          $settings['favicon'] = 'misc/favicon.ico';
+          $settings['favicon'] .= 'misc/favicon.ico';
         }
       }
       elseif ($settings['favicon_path']) {
-        $settings['favicon'] = $settings['favicon_path'];
+        $settings['favicon'] .= $settings['favicon_path'];
       }
     }
-
   }
 
   return isset($settings[$setting_name]) ? $settings[$setting_name] : NULL;
@@ -427,9 +427,10 @@ function theme_page($content) {
 }
 
 function theme_maintenance_page($content) {
+  global $base_path;
   drupal_set_header('Content-Type: text/html; charset=utf-8');
   theme('add_style', 'misc/maintenance.css');
-  drupal_set_html_head('<link rel="shortcut icon" href="misc/favicon.ico" type="image/x-icon" />');
+  drupal_set_html_head('<link rel="shortcut icon" href="'. $base_path .'misc/favicon.ico" type="image/x-icon" />');
   $output = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
   $output .= '<html xmlns="http://www.w3.org/1999/xhtml">';
   $output .= '<head>';
@@ -634,7 +635,6 @@ function theme_form_element($title, $value, $description = NULL, $id = NULL, $re
   return $output;
 }
 
-
 /**
  * Return a themed submenu, typically displayed under the tabs.
  *
diff --git a/themes/chameleon/chameleon.theme b/themes/chameleon/chameleon.theme
index bd6d865c64080184b7bda6f37654bae83639d921..917c63ec8dee09d43c037c7def1af51463431684 100644
--- a/themes/chameleon/chameleon.theme
+++ b/themes/chameleon/chameleon.theme
@@ -22,6 +22,7 @@ function chameleon_regions() {
 }
 
 function chameleon_page($content) {
+  global $base_path;
   $language = $GLOBALS['locale'];
 
   if (theme_get_setting('toggle_favicon')) {
@@ -35,14 +36,14 @@ function chameleon_page($content) {
   $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 .= " <link rel=\"stylesheet\" type=\"text/css\" href=\"themes/chameleon/common.css\" />\n";
+  theme('add_style', 'themes/chameleon/common.css');
   $output .= theme_get_styles();
   $output .= "</head>";
   $output .= "<body>\n";
   $output .= " <div id=\"header\">";
 
   if ($logo = theme_get_setting('logo')) {
-    $output .= "  <a href=\"./\" title=\"Home\"><img src=\"$logo\" alt=\"Home\" /></a>";
+    $output .= "  <a href=\"$base_path\" title=\"Home\"><img src=\"$logo\" alt=\"Home\" /></a>";
   }
   if (theme_get_setting('toggle_name')) {
     $output .= "  <h1 class=\"site-name title\">". l(variable_get('site_name', 'drupal'), ""). "</h1>";