Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/browser.txt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/browser.txt	(revision 8064)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/browser.txt	(revision 8065)
@@ -30,9 +30,11 @@
   >>> browser = Browser()
 
-Let's get the default view of a university::
+Let's get the default view of a university and see if the
+favicon is properly referenced::
 
   >>> browser.open('http://localhost/myuniversity')
   >>> print browser.contents
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
+  ...href="http://localhost/myuniversity/@@/waeup_kofa/favicon.ico"
   ...Welcome to WAeUP.Kofa...
   ...
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/resources.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/resources.py	(revision 8064)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/resources.py	(revision 8065)
@@ -20,4 +20,5 @@
 #from hurry import yui
 from hurry.resource import Library, ResourceInclusion
+from hurry.resource.core import inclusion_renderers, EXTENSIONS
 from hurry.jqueryui import jqueryui, base, blitzer, ui_lightness, humanity
 from hurry.jquery import jquery
@@ -26,4 +27,23 @@
 #: All local resources are registered under the name ``waeup_kofa``.
 waeup_kofa = Library('waeup_kofa', 'static')
+
+#: A resource that includes a favicon.
+#: In the `gerResource()` method of the theme
+#: require the JavaScript code to be rendered into the page::
+#:
+#:   from waeup.kofa.browser.resources import favicon
+#:   # ...
+#:   class MyTheme(grok.GlobalUtility):
+#:     # ...
+#:     def getResources(self):
+#:       favicon.need()
+#:       return [...]
+
+def render_ico(url):
+    return '<link rel="shortcut icon" type="image/x-icon" href="%s" />' % url
+inclusion_renderers['.ico'] = render_ico
+EXTENSIONS.append('.ico')
+
+favicon = ResourceInclusion(waeup_kofa, 'favicon.ico')
 
 #: A resource that binds a jQueryUI datepicker widget to each
@@ -43,5 +63,5 @@
 #:         datepicker.need()
 #:
-#:   This way all required JavaScripts will be rendered correctly
+#:   This way all required JavaScript will be rendered correctly
 #:   into the HTML page generated.
 #:
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt	(revision 8064)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/staffsitelayout.pt	(revision 8065)
@@ -8,5 +8,4 @@
     <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
     <meta name="robots" content="index, follow" />
-    <link rel="shortcut icon" tal:attributes="href static/favicon.ico" type="image/x-icon" />
     <link rel="alternate" type="application/rss+xml" title="RSS"
         href="http://www.example.net/feed.rss"
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/studentsitelayout.pt
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/studentsitelayout.pt	(revision 8064)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/studentsitelayout.pt	(revision 8065)
@@ -12,5 +12,4 @@
         tal:attributes="href python: view.url(layout.site, '@@/waeup.kofa.browser/mobile.css')"
         type="text/css" />
-    <link rel="shortcut icon" tal:attributes="href static/favicon.ico" type="image/x-icon" />
     <link rel="alternate" type="application/rss+xml" title="RSS"
         href="http://www.example.net/feed.rss"
Index: /main/waeup.kofa/trunk/src/waeup/kofa/browser/theming.py
===================================================================
--- /main/waeup.kofa/trunk/src/waeup/kofa/browser/theming.py	(revision 8064)
+++ /main/waeup.kofa/trunk/src/waeup/kofa/browser/theming.py	(revision 8065)
@@ -26,5 +26,5 @@
 from waeup.kofa.browser.interfaces import ITheme
 from waeup.kofa.browser.resources import (
-    waeuptheme_empty, waeup_base_css,
+    waeuptheme_empty, waeup_base_css, favicon
     )
 
@@ -36,23 +36,6 @@
 
     def getResources(self):
+        favicon.need()
         return [waeup_base_css]
-
-#class KofaThemeRed1(grok.GlobalUtility):
-#    grok.implements(ITheme)
-#    grok.name('red waeup theme')
-
-#    description = u"Uli's Red Theme"
-
-#    def getResources(self):
-#        return [waeuptheme_red1]
-
-#class KofaThemeGray1(grok.GlobalUtility):
-#    grok.implements(ITheme)
-#    grok.name('gray waeup theme')
-
-#    description = u"Henrik's Gray Theme"
-
-#    def getResources(self):
-#        return [waeuptheme_gray1]
 
 class KofaThemeEmpty(grok.GlobalUtility):
