diff --git a/admin_menu.module b/admin_menu.module
index d1ab299..1118a67 100644
--- a/admin_menu.module
+++ b/admin_menu.module
@@ -325,6 +325,7 @@ function admin_menu_translated_menu_link_alter(&$item, $map) {
  * @ingroup themeable
  */
 function theme_admin_menu_icon() {
-  return '<img class="admin-menu-icon" src="'. (theme_get_setting('toggle_favicon') ? theme_get_setting('favicon') : base_path() .'misc/favicon.ico') .'" width="16" height="16" alt="'. t('Home') .'" />';
+  $src = (theme_get_setting('toggle_favicon') ? preg_replace('@^https?:@', '', theme_get_setting('favicon')) : base_path() .'misc/favicon.ico');
+  return '<img class="admin-menu-icon" src="'. check_plain($src) .'" width="16" height="16" alt="'. t('Home') .'" />';
 }
 
