diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 22f91ed..a4131fd 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -172,6 +172,7 @@
 		
 		$CI =& get_instance();
 		$CI->dbutil = new $class();
+		$CI->_ci_assign_to_models();
 	}
 	
 	// --------------------------------------------------------------------
@@ -629,7 +630,7 @@
 	 */	
 	function primary($table = '')
 	{	
-		$fields = $this->field_names($table);
+		$fields = $this->list_fields($table);
 		
 		if ( ! is_array($fields))
 		{
diff --git a/system/database/DB_result.php b/system/database/DB_result.php
index 1c8ad6b..b163bb5 100644
--- a/system/database/DB_result.php
+++ b/system/database/DB_result.php
@@ -261,14 +261,14 @@
 	 */
 	function num_rows() { return $this->num_rows; }
 	function num_fields() { return 0; }
-	function field_names() { return array(); }
+	function list_fields() { return array(); }
+	function field_names() { return array(); } // Deprecated
 	function field_data() { return array(); }	
 	function free_result() { return TRUE; }
 	function _data_seek() { return TRUE; }
 	function _fetch_assoc() { return array(); }	
 	function _fetch_object() { return array(); }
-
-
+	
 }
 // END DB_result class
 ?>
\ No newline at end of file
diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php
index 498deae..0ba0b8c 100644
--- a/system/database/drivers/mssql/mssql_result.php
+++ b/system/database/drivers/mssql/mssql_result.php
@@ -60,7 +60,7 @@
 	 * @access	public
 	 * @return	array
 	 */
-	function field_names()
+	function list_fields()
 	{
 		$field_names = array();
 		while ($field = mssql_fetch_field($this->result_id))
@@ -70,6 +70,12 @@
 		
 		return $field_names;
 	}
+	
+	// Deprecated
+	function field_names()
+	{
+		return $this->list_fields();
+	}
 
 	// --------------------------------------------------------------------
 
diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php
index 3fdfc81..1cf6ff1 100644
--- a/system/database/drivers/mysql/mysql_result.php
+++ b/system/database/drivers/mysql/mysql_result.php
@@ -60,7 +60,7 @@
 	 * @access	public
 	 * @return	array
 	 */
-	function field_names()
+	function list_fields()
 	{
 		$field_names = array();
 		while ($field = mysql_fetch_field($this->result_id))
@@ -70,6 +70,12 @@
 		
 		return $field_names;
 	}
+	
+	// Deprecated
+	function field_names()
+	{
+		return $this->list_fields();
+	}
 
 	// --------------------------------------------------------------------
 
diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php
index 08db13f..215403e 100644
--- a/system/database/drivers/mysqli/mysqli_result.php
+++ b/system/database/drivers/mysqli/mysqli_result.php
@@ -60,7 +60,7 @@
 	 * @access	public
 	 * @return	array
 	 */
-	function field_names()
+	function list_fields()
 	{
 		$field_names = array();
 		while ($field = mysql_fetch_field($this->result_id))
@@ -71,6 +71,12 @@
 		return $field_names;
 	}
 
+	// Deprecated
+	function field_names()
+	{
+		return $this->list_fields();
+	}
+
 	// --------------------------------------------------------------------
 
 	/**
diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php
index a3da800..ab13a39 100644
--- a/system/database/drivers/oci8/oci8_result.php
+++ b/system/database/drivers/oci8/oci8_result.php
@@ -84,7 +84,7 @@
 	 * @access	public
 	 * @return	array
 	 */
-	function field_names()
+	function list_fields()
 	{
 		$field_names = array();
         $fieldCount = $this->num_fields();
@@ -95,6 +95,12 @@
 		return $field_names;
 	}
 
+	// Deprecated
+	function field_names()
+	{
+		return $this->list_fields();
+	}
+
     // --------------------------------------------------------------------
 
     /**
diff --git a/system/database/drivers/odbc/odbc_result.php b/system/database/drivers/odbc/odbc_result.php
index 9204d86..ea834f9 100644
--- a/system/database/drivers/odbc/odbc_result.php
+++ b/system/database/drivers/odbc/odbc_result.php
@@ -60,7 +60,7 @@
 	 * @access	public
 	 * @return	array
 	 */
-	function field_names()
+	function list_fields()
 	{
 		$field_names = array();
 		for ($i = 0; $i < $this->num_fields(); $i++)
@@ -71,6 +71,12 @@
 		return $field_names;
 	}
 
+	// Deprecated
+	function field_names()
+	{
+		return $this->list_fields();
+	}
+
 	// --------------------------------------------------------------------
 
 	/**
diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php
index 8c25c5d..e792544 100644
--- a/system/database/drivers/postgre/postgre_result.php
+++ b/system/database/drivers/postgre/postgre_result.php
@@ -60,7 +60,7 @@
 	 * @access	public
 	 * @return	array
 	 */
-	function field_names()
+	function list_fields()
 	{
 		$field_names = array();
 		for ($i = 0; $i < $this->num_fields(); $i++)
@@ -71,6 +71,12 @@
 		return $field_names;
 	}
 
+	// Deprecated
+	function field_names()
+	{
+		return $this->list_fields();
+	}
+
 	// --------------------------------------------------------------------
 
 	/**
diff --git a/system/database/drivers/sqlite/sqlite_result.php b/system/database/drivers/sqlite/sqlite_result.php
index a3e94b4..55364bb 100644
--- a/system/database/drivers/sqlite/sqlite_result.php
+++ b/system/database/drivers/sqlite/sqlite_result.php
@@ -60,7 +60,7 @@
 	 * @access	public
 	 * @return	array
 	 */
-	function field_names()
+	function list_fields()
 	{
 		$field_names = array();
 		for ($i = 0; $i < $this->num_fields(); $i++)
@@ -71,6 +71,12 @@
 		return $field_names;
 	}
 
+	// Deprecated
+	function field_names()
+	{
+		return $this->list_fields();
+	}
+
 	// --------------------------------------------------------------------
 
 	/**