diff --git a/system/database/DB_export.php b/system/database/DB_export.php
index 1e94c6c..8194cb9 100644
--- a/system/database/DB_export.php
+++ b/system/database/DB_export.php
@@ -13,6 +13,13 @@
  * @filesource
  */
  
+
+ 
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->dbexport =& new CI_DB_export();
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php
index 41941ae..e4ae0c5 100644
--- a/system/database/DB_utility.php
+++ b/system/database/DB_utility.php
@@ -13,6 +13,11 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->dbutility =& new CI_DB_utility();
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/init/init_calendar.php b/system/init/init_calendar.php
index 5cf6637..390b440 100644
--- a/system/init/init_calendar.php
+++ b/system/init/init_calendar.php
@@ -12,7 +12,6 @@
 }
 
 $obj =& get_instance();
-
 $obj->calendar = new CI_Calendar();
 $obj->ci_is_loaded[] = 'calendar';
 
diff --git a/system/init/init_xmlrpcs.php b/system/init/init_xmlrpcs.php
index 7566e38..a900894 100644
--- a/system/init/init_xmlrpcs.php
+++ b/system/init/init_xmlrpcs.php
@@ -18,10 +18,16 @@
 	require_once(BASEPATH.'libraries/Xmlrpcs'.EXT);
 }
 
+
+
+// INITIALIZE THE CLASS ---------------------------------------------------
+
 $obj =& get_instance();
 $obj->xmlrpc  = new CI_XML_RPC();
 $obj->xmlrpcs = new CI_XML_RPC_Server($config);
 $obj->ci_is_loaded[] = 'xmlrpc';
 $obj->ci_is_loaded[] = 'xmlrpcs';
 
+// ------------------------------------------------------------------------
+
 ?>
\ No newline at end of file
diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php
index b77dd1b..a3c0703 100644
--- a/system/libraries/Calendar.php
+++ b/system/libraries/Calendar.php
@@ -13,6 +13,11 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->calendar =& new CI_Calendar();
+
 // ------------------------------------------------------------------------
 
 /**
@@ -25,7 +30,7 @@
  * @category	Libraries
  * @author		Rick Ellis
  * @link		http://www.codeigniter.com/user_guide/libraries/calendar.html
- */
+ */ 
 class CI_Calendar {
 
 	var $lang;
diff --git a/system/libraries/Controller.php b/system/libraries/Controller.php
index afd963a..97aa4b7 100644
--- a/system/libraries/Controller.php
+++ b/system/libraries/Controller.php
@@ -29,7 +29,6 @@
  */
 class Controller extends CI_Base {
 
-	var $ci_is_loaded		= array();
 	var $_ci_models			= array();
 	var $_ci_scaffolding	= FALSE;
 	var $_ci_scaff_table	= FALSE;
@@ -54,15 +53,18 @@
 
 		// This allows anything loaded using $this->load (viwes, files, etc.)
 		// to become accessible from within the Controller class functions.
-		foreach ($this->ci_is_loaded as $val)
+		foreach (get_object_vars($this) as $key => $var)
 		{
-			$this->load->$val =& $this->$val;
+			if (is_object($var))
+			{
+				$this->load->$key =& $this->$key;
+			}
 		}
-			
+		
 		log_message('debug', "Controller Class Initialized");
 	}
   	// END Controller()
-  	
+   	
 	// --------------------------------------------------------------------
 
 	/**
@@ -75,27 +77,28 @@
 	 * @param	mixed	any additional parameters
 	 * @return 	void
 	 */
-	function _ci_initialize($what, $params = FALSE)
+	function _ci_initialize($class, $params = FALSE)
 	{		
-		$method = '_ci_init_'.strtolower(str_replace(EXT, '', $what));
+		$class = strtolower(str_replace(EXT, '', $class));
+		$method = '_ci_init_'.$class;
 
 		if ( ! method_exists($this, $method))
-		{
-			$method = substr($method, 4);
+		{		
+			$class = ucfirst($class);
 		
-			if ( ! file_exists(APPPATH.'init/'.$method.EXT))
+			if ( ! file_exists(APPPATH.'libraries/'.$class.EXT))
 			{
-				if ( ! file_exists(BASEPATH.'init/'.$method.EXT))
+				if ( ! file_exists(BASEPATH.'libraries/'.$class.EXT))
 				{
-					log_message('error', "Unable to load the requested class: ".$what);
-					show_error("Unable to load the class: ".$what);
+					log_message('error', "Unable to load the requested class: ".$class);
+					show_error("Unable to load the class: ".$class);
 				}
 				
-				include(BASEPATH.'init/'.$method.EXT);
+				include_once(BASEPATH.'libraries/'.$class.EXT);
 			}
 			else
 			{
-				include(APPPATH.'init/'.$method.EXT);
+				include_once(APPPATH.'libraries/'.$class.EXT);
 			}
 		}
 		else
@@ -268,11 +271,9 @@
 		{
 			$class = strtolower($val);
 			$this->$class =& _load_class('CI_'.$val);
-			$this->ci_is_loaded[] = $class;
 		}
 		
 		$this->lang	=& _load_class('CI_Language');
-		$this->ci_is_loaded[] = 'lang';
 	
 		// In PHP 4 the Controller class is a child of CI_Loader.
 		// In PHP 5 we run it as its own class.
@@ -280,8 +281,6 @@
 		{
 			$this->load = new CI_Loader();
 		}
-		
-		$this->ci_is_loaded[] = 'load';
 	}
   	// END _ci_assign_core()
   	
@@ -393,7 +392,6 @@
 		}
 		
 		$obj =& get_instance();
-		$obj->ci_is_loaded[] = 'db';
 		$obj->db =& $DB;
 	}
   	// END _ci_init_database()
@@ -409,10 +407,10 @@
 	 */
 	function _ci_is_loaded($class)
 	{
-		return ( ! in_array($class, $this->ci_is_loaded)) ? FALSE : TRUE;
+		return ( ! isset($this->$class) OR ! is_object($this->$class)) ? FALSE : TRUE;
 	}
   	// END _ci_is_loaded()
-  	
+  	  	
 	// --------------------------------------------------------------------
 
 	/**
diff --git a/system/libraries/Email.php b/system/libraries/Email.php
index 5b991d1..c153043 100644
--- a/system/libraries/Email.php
+++ b/system/libraries/Email.php
@@ -13,6 +13,11 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->email =& new CI_Email();
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php
index bcffdf1..446f64a 100644
--- a/system/libraries/Encrypt.php
+++ b/system/libraries/Encrypt.php
@@ -13,6 +13,11 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->encrypt =& new CI_Encrypt();
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php
index 18e3253..86ed059 100644
--- a/system/libraries/Image_lib.php
+++ b/system/libraries/Image_lib.php
@@ -13,6 +13,17 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$config = array();
+if (file_exists(APPPATH.'config/image_lib'.EXT))
+{
+	include_once(APPPATH.'config/image_lib'.EXT);
+}
+
+$obj =& get_instance();
+$obj->image_lib =& new CI_Image_lib($config);
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Loader.php b/system/libraries/Loader.php
index 833e376..7449fa3 100644
--- a/system/libraries/Loader.php
+++ b/system/libraries/Loader.php
@@ -136,15 +136,9 @@
 	 * @param	bool	whether to return the DB object
 	 * @return	object
 	 */	
-	function dbutil($db = '', $return = FALSE)
+	function dbutil()
 	{
 		$obj =& get_instance();
-		
-		if ( ! is_bool($return))
-		{
-			$return = FALSE;
-		}
-	
 		return $obj->_ci_init_dbutil($db, $return);
 	}
 	// END dbutils()
@@ -484,14 +478,14 @@
 		// This allows anything loaded using $this->load (viwes, files, etc.)
 		// to become accessible from within the Controller and Model functions.
 		$obj =& get_instance();
-		foreach ($obj->ci_is_loaded as $val)
+		foreach (get_object_vars($obj) as $key => $var)
 		{
-			if ( ! isset($this->$val))
+			if (is_object($var))
 			{
-				$this->$val =& $obj->$val;
-			}	
-		}		
-		
+				$this->$key =& $obj->$key;
+			}
+		}
+				
 		// Set the default data variables
 		foreach (array('view', 'vars', 'path', 'return') as $val)
 		{
diff --git a/system/libraries/Model.php b/system/libraries/Model.php
index 9834f82..55c9956 100644
--- a/system/libraries/Model.php
+++ b/system/libraries/Model.php
@@ -50,20 +50,21 @@
 	function _assign_libraries($use_reference = TRUE)
 	{
 		$obj =& get_instance();
-		foreach ($obj->ci_is_loaded as $val)
+		foreach (get_object_vars($obj) as $key => $var)
 		{
-			if ( ! isset($this->$val))
+			if (is_object($var) AND ! isset($this->$key))
 			{
 				if ($use_reference === TRUE)
 				{
-					$this->$val =& $obj->$val;
+					$this->$key =& $obj->$key;						
 				}
 				else
 				{
-					$this->$val = $obj->$val;
+					$this->$key = $obj->$key;
 				}
 			}
 		}
+
 	}
 	// END _assign_libraries()
 
diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php
index 9d558f0..d83a2bd 100644
--- a/system/libraries/Pagination.php
+++ b/system/libraries/Pagination.php
@@ -13,6 +13,17 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$config = array();
+if (file_exists(APPPATH.'config/pagination'.EXT))
+{
+	include_once(APPPATH.'config/pagination'.EXT);
+}
+
+$obj =& get_instance();
+$obj->pagination =& new CI_Pagination($config);
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Parser.php b/system/libraries/Parser.php
index 63dc023..5bc2eb5 100644
--- a/system/libraries/Parser.php
+++ b/system/libraries/Parser.php
@@ -13,6 +13,11 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->parser =& new CI_Parser();
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Session.php b/system/libraries/Session.php
index 94efee5..bcd2e4d 100644
--- a/system/libraries/Session.php
+++ b/system/libraries/Session.php
@@ -13,6 +13,11 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->session =& new CI_Session();
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Trackback.php b/system/libraries/Trackback.php
index 8f9680d..9b61384 100644
--- a/system/libraries/Trackback.php
+++ b/system/libraries/Trackback.php
@@ -13,6 +13,11 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->trackback =& new CI_Trackback();
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Unit_test.php b/system/libraries/Unit_test.php
index b2f4bf8..19fac79 100644
--- a/system/libraries/Unit_test.php
+++ b/system/libraries/Unit_test.php
@@ -13,6 +13,11 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->unit =& new CI_Unit_test();
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php
index 98edd65..26f2165 100644
--- a/system/libraries/Upload.php
+++ b/system/libraries/Upload.php
@@ -13,6 +13,17 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$config = array();
+if (file_exists(APPPATH.'config/upload'.EXT))
+{
+	include_once(APPPATH.'config/upload'.EXT);
+}
+
+$obj =& get_instance();
+$obj->upload = new CI_Upload($config);
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Validation.php b/system/libraries/Validation.php
index b65b9be..6c755a9 100644
--- a/system/libraries/Validation.php
+++ b/system/libraries/Validation.php
@@ -13,6 +13,11 @@
  * @filesource
  */
  
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$obj =& get_instance();
+$obj->validation =& new CI_Validation();
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php
index 9eeb46a..b470f72 100644
--- a/system/libraries/Xmlrpc.php
+++ b/system/libraries/Xmlrpc.php
@@ -18,6 +18,19 @@
     show_error('Your PHP installation does not support XML');
 }
 
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$config = array();
+if (file_exists(APPPATH.'config/xmlrpc'.EXT))
+{
+	include_once(APPPATH.'config/xmlrpc'.EXT);
+}
+
+$obj =& get_instance();
+$obj->xmlrpc = new CI_XML_RPC($config);
+
+// ------------------------------------------------------------------------
+
 /**
  * XML-RPC request handler class
  * 
diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php
index 0543c3b..4d50dfb 100644
--- a/system/libraries/Xmlrpcs.php
+++ b/system/libraries/Xmlrpcs.php
@@ -12,7 +12,38 @@
  * @since		Version 1.0
  * @filesource
  */
- 
+
+
+// INITIALIZE THE CLASS ---------------------------------------------------
+
+$config = array();
+if (file_exists(APPPATH.'config/xmlrpcs'.EXT))
+{
+	include_once(APPPATH.'config/xmlrpcs'.EXT);
+}
+
+if ( ! class_exists('CI_XML_RPC'))
+{	
+	if ( ! file_exists(BASEPATH.'libraries/Xmlrpc'.EXT))
+	{
+		if ( ! file_exists(APPPATH.'libraries/Xmlrpc'.EXT))
+		{
+			show_error('Unable to locate the Xmlrpc class');
+		}
+		else
+		{
+			require_once(APPPATH.'libraries/Xmlrpc'.EXT);		
+		}
+	}
+	else
+	{
+		require_once(BASEPATH.'libraries/Xmlrpc'.EXT);		
+	}	
+}
+
+$obj =& get_instance();
+$obj->xmlrpcs = new CI_XML_RPC_Server($config);
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/user_guide/general/creating_libraries.html b/user_guide/general/creating_libraries.html
index 82bb9d4..da096d8 100644
--- a/user_guide/general/creating_libraries.html
+++ b/user_guide/general/creating_libraries.html
@@ -105,7 +105,6 @@
 <br />

 $obj =& get_instance();<br />

 $obj-><kbd>myclass</kbd> = new <kbd>Myclass();</kbd><br />

-$obj->ci_is_loaded[] = '<kbd>myclass</kbd>';<br />

 <br />

 ?&gt;</code>