Apparently mysql_data_seek() causes problems even when we suppress and ignore it
diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php
index b507f79..a75cfad 100644
--- a/system/database/drivers/mysql/mysql_result.php
+++ b/system/database/drivers/mysql/mysql_result.php
@@ -38,15 +38,30 @@
 class CI_DB_mysql_result extends CI_DB_result {
 
 	/**
+	 * Constructor
+	 *
+	 * @param	object
+	 * @return	void
+	 */
+	public function __construct(&$driver_object)
+	{
+		parent::__construct($driver_object);
+
+		// Required, due to mysql_data_seek() causing nightmares
+		// with empty result sets
+		$this->num_rows = @mysql_num_rows($this->result_id);
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
 	 * Number of rows in the result set
 	 *
 	 * @return	int
 	 */
 	public function num_rows()
 	{
-		return is_int($this->num_rows)
-			? $this->num_rows
-			: $this->num_rows = @mysql_num_rows($this->result_id);
+		return $this->num_rows;
 	}
 
 	// --------------------------------------------------------------------
@@ -135,7 +150,9 @@
 	 */
 	protected function _data_seek($n = 0)
 	{
-		return @mysql_data_seek($this->result_id, $n);
+		return $this->num_rows
+			? @mysql_data_seek($this->result_id, $n)
+			: FALSE;
 	}
 
 	// --------------------------------------------------------------------