diff --git a/system/application/config/config.php b/system/application/config/config.php
index 2f385a6..b1598b3 100644
--- a/system/application/config/config.php
+++ b/system/application/config/config.php
@@ -223,9 +223,9 @@
 $config['sess_cookie_name']		= 'ci_session';
 $config['sess_expiration']		= 7200;
 $config['sess_encrypt_cookie']	= FALSE;
-$config['sess_use_database']	= TRUE;
+$config['sess_use_database']	= FALSE;
 $config['sess_table_name']		= 'ci_sessions';
-$config['sess_match_ip']		= TRUE;
+$config['sess_match_ip']		= FALSE;
 $config['sess_match_useragent']	= TRUE;
 
 /*
diff --git a/system/codeigniter/Common.php b/system/codeigniter/Common.php
index 41e13be..4576cd9 100644
--- a/system/codeigniter/Common.php
+++ b/system/codeigniter/Common.php
@@ -106,14 +106,14 @@
 	{
 		if ( ! file_exists(APPPATH.'config/config'.EXT))
 		{
-			show_error('The configuration file config'.EXT.' does not exist.');
+			exit('The configuration file config'.EXT.' does not exist.');
 		}
 		
 		require(APPPATH.'config/config'.EXT);
 		
 		if ( ! isset($config) OR ! is_array($config))
 		{
-			show_error('Your config file does not appear to be formatted correctly.');
+			exit('Your config file does not appear to be formatted correctly.');
 		}
 
 		$main_conf[0] =& $config;
@@ -210,8 +210,8 @@
 /**
 * Exception Handler
 *
-* This is the custom exception handler we defined at the
-* top of this file. The main reason we use this is permit
+* This is the custom exception handler that is declaired at the top
+* of Codeigniter.php.  The main reason we use this is permit
 * PHP errors to be logged in our own log files since we may
 * not have access to server logs. Since this function
 * effectively intercepts PHP errors, however, we also need
diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php
index af30457..fb4ed1f 100644
--- a/system/database/drivers/oci8/oci8_result.php
+++ b/system/database/drivers/oci8/oci8_result.php
@@ -31,21 +31,24 @@
 	var $limit_used;
 
 	/**
-	 * Number of rows in the result set
+	 * Number of rows in the result set.
+	 *
+	 * Oracle doesn't have a graceful way to retun the number of rows
+	 * so we have to use what amounts to a hack.
+	 * 
 	 *
 	 * @access  public
 	 * @return  integer
 	 */
 	function num_rows()
 	{
-		if (function_exists('oci_num_rows'))
+        $rowcount = count($this->result_array());
+        @ociexecute($this->stmt_id);
+        if ($this->curs_id)
 		{
-			return @oci_num_rows($this->stmt_id);
+			@ociexecute($this->curs_id);
 		}
-		else
-		{
-			return @ocirowcount($this->stmt_id);
-		}
+        return $rowcount;
 	}
 
 	// --------------------------------------------------------------------
@@ -175,12 +178,7 @@
 		{
 			$id = ($this->curs_id) ? $this->curs_id : $this->stmt_id;
 			
-			while ($row = oci_fetch_object($id))
-			{
-				$result[] = $row;
-			}
-						
-			return $result;
+			return @oci_fetch_object($id);
 		}
 		
 		// If PHP 4 is being used we have to build our own result
diff --git a/system/libraries/Exceptions.php b/system/libraries/Exceptions.php
index 8f90ff8..8390939 100644
--- a/system/libraries/Exceptions.php
+++ b/system/libraries/Exceptions.php
@@ -30,6 +30,7 @@
 	var $message;
 	var $filename;
 	var $line;
+	var $ob_level;
 
 	var $levels = array(
 						E_ERROR				=>	'Error',
@@ -53,6 +54,7 @@
 	 */	
 	function CI_Exceptions()
 	{
+		$this->ob_level = ob_get_level();
 		// Note:  Do not log messages from this constructor.
 	}
   	
@@ -115,7 +117,7 @@
 	{
 		$message = '<p>'.implode('</p><p>', ( ! is_array($message)) ? array($message) : $message).'</p>';
 
-		if (ob_get_level() > 1)
+		if (ob_get_level() > $this->ob_level + 1)
 		{
 			ob_end_flush();	
 		}
@@ -151,7 +153,7 @@
 			$filepath = $x[count($x)-2].'/'.end($x);
 		}
 		
-		if (ob_get_level() > 1)
+		if (ob_get_level() > $this->ob_level + 1)
 		{
 			ob_end_flush();	
 		}
diff --git a/system/libraries/Input.php b/system/libraries/Input.php
index b630bf6..8017620 100644
--- a/system/libraries/Input.php
+++ b/system/libraries/Input.php
@@ -73,13 +73,15 @@
 		{
 			if ( ! is_array($global))
 			{
-				unset($$global);
+				global $global;
+				$$global = NULL;
 			}
 			else
 			{
 				foreach ($global as $key => $val)
 				{
-					unset($$key);
+					global $$key;
+					$$key = NULL;
 				}	
 			}
 		}
diff --git a/system/libraries/User_agent.php b/system/libraries/User_agent.php
index 8d16067..95eccd1 100644
--- a/system/libraries/User_agent.php
+++ b/system/libraries/User_agent.php
@@ -186,6 +186,7 @@
 					$this->is_browser = TRUE;
 					$this->version = $match[1];
 					$this->browser = $val;
+					$this->_set_mobile();
 					return TRUE;
 				}
 			}