diff --git a/lib/base.php b/lib/base.php
index 0453e272a4b72bc40b21f0472c81f07b6e828116..6aac2d9855d149642a34365b506f7e6f227dcb80 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -120,6 +120,7 @@ if(!$error and !$RUNTIME_NOAPPS ){
 class OC_UTIL {
 	public static $scripts=array();
 	public static $styles=array();
+	public static $headers=array();
 	private static $fsSetup=false;
 
 	// Can be set up
@@ -231,6 +232,16 @@ class OC_UTIL {
 		}
 	}
 
+	/**
+	 * @brief Add a custom element to the header
+	 * @param string tag tag name of the element
+	 * @param array $attributes array of attrobutes for the element
+	 * @param string $text the text content for the element
+	 */
+	public static function addHeader( $tag, $attributes, $text=''){
+		self::$headers[]=array('tag'=>$tag,'attributes'=>$attributes,'text'=>$text);
+	}
+
        /**
          * formats a timestamp in the "right" way
          *
diff --git a/lib/template.php b/lib/template.php
index 992fa2de76cbf47a24656c796c509f639d7f74dc..9393fe6908e709de6942c979ae4bd1e1ac881a89 100644
--- a/lib/template.php
+++ b/lib/template.php
@@ -206,9 +206,6 @@ class OC_TEMPLATE{
 				$search=new OC_TEMPLATE( 'core', 'part.searchbox');
 				$search->assign('searchurl',OC_HELPER::linkTo( 'search', 'index.php' ));
 				$page->assign('searchbox', $search->fetchPage());
-				
-				// Add custom headers
-				$page->assign('headers',$this->headers);
 
 				// Add navigation entry
 				$page->assign( "navigation", OC_APP::getNavigation());
@@ -220,9 +217,6 @@ class OC_TEMPLATE{
 				$search->assign('searchurl',OC_HELPER::linkTo( 'search', 'index.php' ));
 				$page->assign('searchbox', $search->fetchPage());
 				
-				// Add custom headers
-				$page->assign('headers',$this->headers);
-				
 				// Add menu data
 				if( OC_GROUP::inGroup( $_SESSION["user_id"], "admin" )){
 					$page->assign( "adminnavigation", OC_APP::getAdminNavigation());
@@ -232,8 +226,6 @@ class OC_TEMPLATE{
 			else
 			{
 				$page = new OC_TEMPLATE( "core", "layout.guest" );
-				// Add custom headers
-				$page->assign('headers',$this->headers);
 			}
 
 			// Add the css and js files
@@ -259,7 +251,13 @@ class OC_TEMPLATE{
 					$page->append( "cssfiles", "$WEBROOT/core/$style.css" );
 				}
 			}
-
+			
+			// Add custom headers
+			$page->assign('headers',$this->headers);
+			foreach(OC_UTIL::$headers as $header){
+				$page->append('headers',$header);
+			}
+			
 			// Add css files and js files
 			$page->assign( "content", $data );
 			return $page->fetchPage();