changed escape_str() in mysqli_driver() to use is_object() instead of is_resource() to test $this->conn_id
diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php
index dab56c7..aaeab57 100644
--- a/system/database/drivers/mysqli/mysqli_driver.php
+++ b/system/database/drivers/mysqli/mysqli_driver.php
@@ -249,7 +249,7 @@
 	 */

 	function escape_str($str)	

 	{

-		if (function_exists('mysqli_real_escape_string') AND is_resource($this->conn_id))

+		if (function_exists('mysqli_real_escape_string') AND is_object($this->conn_id))

 		{

 			return mysqli_real_escape_string($this->conn_id, $str);

 		}

diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 5733fd8..43fac7e 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -93,6 +93,7 @@
     <li>Fixed a bug (#3396) where certain POST variables would cause a PHP warning.</li>

     <li>Fixed a bug in query binding (#3402).</li>

 	<li>Changed order of SQL keywords in the Profiler $highlight array so OR would not be highlighted before ORDER BY</li>

+	<li>Fixed a bug (#3404) where the MySQLi driver was testing if $this->conn_id was a resource instead of an object.</li>

 	<li>Fixed a bug (#3445) where the routed segment array was not re-indexed to begin with 1 when the default controller is used.</li>

 	<li>Fixed assorted user guide typos.</li>

 </ul>