diff --git a/system/libraries/Loader.php b/system/libraries/Loader.php
index 96ec0c9..7a6637a 100644
--- a/system/libraries/Loader.php
+++ b/system/libraries/Loader.php
@@ -171,10 +171,7 @@
 			$CI->$name = new $model();	
 			foreach (get_object_vars($CI) as $key => $var)
 			{		
-				if ( ! isset($CI->$name->$key))
-				{
-					$CI->$name->$key =& $CI->$key;						
-				}				
+				$CI->$name->$key =& $CI->$key;						
 			}			
 		}
 		else
@@ -182,14 +179,12 @@
 			$this->$name = new $model();
 			foreach (get_object_vars($this) as $key => $var)
 			{			
-				if ( ! isset($this->$name->$key))
-				{
-					$this->$name->$key =& $CI->$key;						
-				}				
+				$this->$name->$key =& $this->$key;						
 			}			
 		}		
 		
 		$this->_ci_models[] = $name;
+		$this->_ci_assign_to_models();
 	}
 	
 	
diff --git a/system/libraries/Table.php b/system/libraries/Table.php
index 61d04ee..758676e 100644
--- a/system/libraries/Table.php
+++ b/system/libraries/Table.php
@@ -202,12 +202,12 @@
 		// First generate the headings from the table column names
 		if (count($this->heading) == 0)
 		{
-			if ( ! method_exists($query, 'field_names'))
+			if ( ! method_exists($query, 'list_fields'))
 			{
 				return FALSE;
 			}
 			
-			$this->heading = $query->field_names();
+			$this->heading = $query->list_fields();
 		}
 				
 		// Next blast through the result array and build out the rows