diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php
index 281a3b8..a2469d0 100644
--- a/system/database/DB_utility.php
+++ b/system/database/DB_utility.php
@@ -191,8 +191,7 @@
 	 * Optimize Database
 	 *
 	 * @access	public
-	 * @param	string	the table name
-	 * @return	bool
+	 * @return	array
 	 */
 	function optimize_database()
 	{
@@ -207,6 +206,8 @@
 			}
 			
 			$query = $this->db->query($sql);
+			
+			// Build the result array...
 			$res = current($query->result_array());
 			$key = str_replace($this->db->database.'.', '', current($res));
 			$keys = array_keys($res);
diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php
index 9ba4a79..a81936c 100644
--- a/system/database/drivers/mysql/mysql_utility.php
+++ b/system/database/drivers/mysql/mysql_utility.php
@@ -12,7 +12,7 @@
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Controller.php b/system/libraries/Controller.php
index 23c050e..56b4d6f 100644
--- a/system/libraries/Controller.php
+++ b/system/libraries/Controller.php
@@ -468,10 +468,22 @@
 	 */
 	function _ci_init_dbextra($class)
 	{
-		$map = array('dbutil' => 'DB_utility', 'dbexport' => 'DB_export');
-		require_once(BASEPATH.'database/'.$map[$class].EXT);
-		
-		$this->init_class('CI_'.$map[$class], $class);
+		if ( ! $this->_ci_is_loaded('db'))
+		{
+			$this->_init_database();
+		}
+			
+		if ($class == 'dbutil')
+		{
+			require_once(BASEPATH.'database/DB_utility'.EXT);
+			require_once(BASEPATH.'database/drivers/'.$this->db->dbdriver.'/'.$this->db->dbdriver.'_utility'.EXT);
+			$this->init_class('CI_DB_'.$this->db->dbdriver.'_utility', 'dbutil');
+		}
+		elseif ($class == 'dbexport')
+		{
+			require_once(BASEPATH.'database/DB_export'.EXT);
+			$this->init_class('CI_DB_export', 'dbexport');
+		}
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php
index a95764a..f414373 100644
--- a/system/libraries/Xmlrpcs.php
+++ b/system/libraries/Xmlrpcs.php
@@ -18,13 +18,15 @@
     show_error('Your PHP installation does not support XML');
 }
 
+if ( ! class_exists('CI_Xmlrpc'))
+{
+    show_error('You must load the Xmlrpc class before loading the Xmlrpcs class in order to create a server.');
+}
 
 // INITIALIZE THE CLASS ---------------------------------------------------
 
-require_once(BASEPATH.'libraries/Xmlrpc'.EXT);		
-
-// The initialization code is at the bottom of this file.  It seems to
-// cause an error to have it at the top
+$obj =& get_instance();
+$obj->init_class('CI_Xmlrpcs');
 
 // ------------------------------------------------------------------------
 
@@ -503,14 +505,4 @@
 }
 // END XML_RPC_Server class
 
-
-// INITIALIZE THE CLASS ---------------------------------------------------
-
-$obj =& get_instance();
-$obj->init_class('CI_Xmlrpc');
-$obj->init_class('CI_Xmlrpcs');
-
-// ------------------------------------------------------------------------
-
-
 ?>
\ No newline at end of file
diff --git a/user_guide/database/utilities.html b/user_guide/database/utilities.html
index aa2ed3d..775c3f2 100644
--- a/user_guide/database/utilities.html
+++ b/user_guide/database/utilities.html
@@ -176,6 +176,20 @@
 

 

 

+<h2>$this->dbutil->optimize_database();</h2>

+

+<p>Permits you to optimize the database your DB class is currently connected to. Returns an array containing the returned status messages or FALSE on failure.</p>

+

+<code>

+$result = $this->dbutil->optimize_databas();<br />

+<br />

+if ($result !== FALSE)<br />

+{<br />

+&nbsp;&nbsp;&nbsp; print_r($result);<br />

+}

+</code>

+

+<p><strong>Note:</strong> Not all database platforms support table optimization.</p>

 

 

 

@@ -190,7 +204,7 @@
 &nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;

 <a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;

 <a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;

-Next Topic:&nbsp;&nbsp;<a href="../libraries/email.html">Email Class</a>

+Next Topic:&nbsp;&nbsp;<a href="export.html">Database Export Class</a>

 <p>

 <p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>

 </div>

diff --git a/user_guide/libraries/xmlrpc.html b/user_guide/libraries/xmlrpc.html
index 1417b4a..96a52a1 100644
--- a/user_guide/libraries/xmlrpc.html
+++ b/user_guide/libraries/xmlrpc.html
@@ -93,9 +93,14 @@
 <p>Once loaded, the xml-rpc library object will be available using: <dfn>$this->xmlrpc</dfn></p>

 

 <p>To load the XML-RPC Server class you will use:

-<code>$this->load->library('xmlrpcs');</code>

+<code>

+$this->load->library('xmlrpc');<br />

+$this->load->library('xmlrpcs');

+</code>

 <p>Once loaded, the xml-rpcs library object will be available using: <dfn>$this->xmlrpcs</dfn></p>

 

+<p class="important"><strong>Note:</strong>&nbsp; When using the XML-RPC Sever class you must load BOTH the XML-RPC class and the XML-RPC Server class.</p>

+

 

 

 <h2>Sending XML-RPC Requests</h2>

@@ -177,7 +182,9 @@
 

 <p>Here is an example to illustrate:</p>

 

-<code>$this->load->library('xmlrpcs');<br />

+<code>

+$this->load->library('xmlrpcs');<br />

+$this->load->library('xmlrpcs');<br />

 <br />

 $config['functions']['<var>new_post</var>'];&nbsp;&nbsp;= array('function' => '<dfn>My_blog.new_entry</dfn>');<br />

 $config['functions']['<var>update_post</var>'] = array('function' => '<dfn>My_blog.update_entry</dfn>');<br />

@@ -359,6 +366,8 @@
 

 	function index()

 	{

+	

+		$this->load->library('xmlrpc');

 		$this->load->library('xmlrpcs');

 		

 		$config['functions']['Greetings'] = array('function' => 'Xmlrpc_server.process');