diff --git a/system/libraries/Output.php b/system/libraries/Output.php
index fd07a9f..b09bf2a 100644
--- a/system/libraries/Output.php
+++ b/system/libraries/Output.php
@@ -30,6 +30,7 @@
 
 	var $final_output;
 	var $cache_expiration = 0;
+	var $headers = array();
 
 	function CI_Output()
 	{
@@ -66,6 +67,26 @@
 	{
 		$this->final_output = $output;
 	}
+
+	// --------------------------------------------------------------------
+	
+	/**
+	 * Set Header 
+	 *
+	 * Lets you set a server header which will be outputted with the final display.
+	 *
+	 * Note:  If a file is cached, headers will not be sent.  We need to figure out
+	 * how to permit header data to be saved with the cache data...
+	 *
+	 * @access	public
+	 * @param	string
+	 * @return	void
+	 */	
+	function set_header($header)
+	{
+		$this->headers[] = $header;
+	}
+
 	
 	// --------------------------------------------------------------------
 	
@@ -110,17 +131,30 @@
 			$output =& $this->final_output;
 		}
 		
+		// Do we need to write a cache file?
 		if ($this->cache_expiration > 0)
 		{
 			$this->_write_cache($output);
 		}
 
+		// Parse out the elapsed time and memory usage, and 
+		// swap the pseudo-variables with the data
 		$elapsed = $BM->elapsed_time('code_igniter_start', 'code_igniter_end');		
 		$memory	 = ( ! function_exists('memory_get_usage')) ? '0' : round(memory_get_usage()/1024/1024, 2).'MB';
 
 		$output = str_replace('{memory_usage}', $memory, $output);		
 		$output = str_replace('{elapsed_time}', $elapsed, $output);
 		
+		// Are there any server headers to send?
+		if (count($this->headers) > 0)
+		{
+			foreach ($this->headers as $header)
+			{
+				@header($header);
+			}
+		}
+		
+		// Send it to the browser!
 		echo $output;
 		
 		log_message('debug', "Final output sent to browser");