diff --git a/include/class.osticket.php b/include/class.osticket.php
index 512d390e284bdd64b7587f523f71c2ec75712fe4..9dd1df016f1b9727d388ed57f837a4f92c47f72f 100644
--- a/include/class.osticket.php
+++ b/include/class.osticket.php
@@ -307,7 +307,7 @@ class osTicket {
             ',log='.db_input($message).
             ',ip_address='.db_input($_SERVER['REMOTE_ADDR']);
 
-        mysql_query($sql); //don't use db_query to avoid possible loop.
+        db_query($sql, false);
 
         return true;
     }
diff --git a/include/class.setup.php b/include/class.setup.php
index af44e4d22703f82fe2f9e32dbfb1294a4d3bfac0..dfb348c8919ac8be8fa58df0d5d0bf29cd19db8f 100644
--- a/include/class.setup.php
+++ b/include/class.setup.php
@@ -21,7 +21,7 @@ Class SetupWizard {
                         'mysql' => '4.4');
 
     //Version info - same as the latest version.
-    
+
     var $version =THIS_VERSION;
     var $version_verbose = THIS_VERSION;
 
@@ -35,7 +35,7 @@ Class SetupWizard {
     }
 
     function load_sql_file($file, $prefix, $abort=true, $debug=false) {
-        
+
         if(!file_exists($file) || !($schema=file_get_contents($file)))
             return $this->abort('Error accessing SQL file '.basename($file), $debug);
 
@@ -49,18 +49,17 @@ Class SetupWizard {
 
         # Strip comments and remarks
         $schema=preg_replace('%^\s*(#|--).*$%m', '', $schema);
-        # Replace table prefis
+        # Replace table prefix
         $schema = str_replace('%TABLE_PREFIX%', $prefix, $schema);
-        # Split by semicolons - and cleanup 
+        # Split by semicolons - and cleanup
         if(!($statements = array_filter(array_map('trim', @explode(';', $schema)))))
             return $this->abort('Error parsing SQL schema', $debug);
 
 
-        @mysql_query('SET SESSION SQL_MODE =""');
+        db_query('SET SESSION SQL_MODE =""', false);
         foreach($statements as $k=>$sql) {
-            //Note that we're not using db_query - because we want to control how errors are reported.
-            if(mysql_query($sql)) continue;
-            $error = "[$sql] ".mysql_error();
+            if(db_query($sql, false)) continue;
+            $error = "[$sql] ".db_error();
             if($abort)
                     return $this->abort($error, $debug);
         }
@@ -100,7 +99,7 @@ Class SetupWizard {
         @error is a mixed var.
     */
     function abort($error, $debug=false) {
-       
+
         if($debug) echo $error;
         $this->onError($error);
 
@@ -108,7 +107,7 @@ Class SetupWizard {
     }
 
     function setError($error) {
-    
+
         if($error && is_array($error))
             $this->errors = array_merge($this->errors, $error);
         elseif($error)
diff --git a/setup/inc/class.installer.php b/setup/inc/class.installer.php
index 1a177103986f91bc6f9e0de82e02856ed8b24181..eb506e04d489c3ec6437718577c0a5a2b5a07cd9 100644
--- a/setup/inc/class.installer.php
+++ b/setup/inc/class.installer.php
@@ -92,12 +92,12 @@ class Installer extends SetupWizard {
             } else {
                 //Abort if we have another installation (or table) with same prefix.
                 $sql = 'SELECT * FROM `'.$vars['prefix'].'config` LIMIT 1';
-                if(mysql_query($sql)) {
+                if(db_query($sql, false)) {
                     $this->errors['err'] = 'We have a problem - another installation with same table prefix exists!';
                     $this->errors['prefix'] = 'Prefix already in-use';
                 } else {
                     //Try changing charset and collation of the DB - no bigie if we fail.
-                    mysql_query('ALTER DATABASE '.$vars['dbname'].' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci');
+                    db_query('ALTER DATABASE '.$vars['dbname'].' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci', false);
                 }
             }
         }
@@ -125,19 +125,19 @@ class Installer extends SetupWizard {
             $this->errors['err']='Error parsing SQL schema! Get help from developers (#4)';
 
         $sql='SELECT `id` FROM '.PREFIX.'sla ORDER BY `id` LIMIT 1';
-        $sla_id_1 = mysql_result(mysql_query($sql), 0);
+        $sla_id_1 = db_result(db_query($sql, false), 0);
 
         $sql='SELECT `dept_id` FROM '.PREFIX.'department ORDER BY `dept_id` LIMIT 1';
-        $dept_id_1 = mysql_result(mysql_query($sql), 0);
+        $dept_id_1 = db_result(db_query($sql, false), 0);
 
         $sql='SELECT `tpl_id` FROM '.PREFIX.'email_template ORDER BY `tpl_id` LIMIT 1';
-        $template_id_1 = mysql_result(mysql_query($sql), 0);
+        $template_id_1 = db_result(db_query($sql, false), 0);
 
         $sql='SELECT `group_id` FROM '.PREFIX.'groups ORDER BY `group_id` LIMIT 1';
-        $group_id_1 = mysql_result(mysql_query($sql), 0);
+        $group_id_1 = db_result(db_query($sql, false), 0);
 
         $sql='SELECT `id` FROM '.PREFIX.'timezone WHERE offset=-5.0 LIMIT 1';
-        $eastern_timezone = mysql_result(mysql_query($sql), 0);
+        $eastern_timezone = db_result(db_query($sql, false), 0);
 
         if(!$this->errors) {
             //Create admin user.
@@ -149,7 +149,7 @@ class Installer extends SetupWizard {
                 .', lastname='.db_input($vars['lname'])
                 .', username='.db_input($vars['username'])
                 .', passwd='.db_input(Passwd::hash($vars['passwd']));
-            if(!mysql_query($sql) || !($uid=mysql_insert_id()))
+            if(!db_query($sql, false) || !($uid=db_insert_id()))
                 $this->errors['err']='Unable to create admin user (#6)';
         }
 
@@ -161,11 +161,11 @@ class Installer extends SetupWizard {
                     ." ('Support','$email',NOW(),NOW())"
                     .",('osTicket Alerts','alerts@$domain',NOW(),NOW())"
                     .",('','noreply@$domain',NOW(),NOW())";
-            @mysql_query($sql);
-            $support_email_id = mysql_insert_id();
+            $support_email_id = db_query($sql, false) ? db_insert_id() : 0;
+
 
             $sql='SELECT `email_id` FROM '.PREFIX."email WHERE `email`='alerts@$domain' LIMIT 1";
-            $alert_email_id = mysql_result(mysql_query($sql), 0);
+            $alert_email_id = db_result(db_query($sql, false), 0);
 
             //Create config settings---default settings!
             //XXX: rename ostversion  helpdesk_* ??
@@ -178,7 +178,7 @@ class Installer extends SetupWizard {
                 .', schema_signature='.db_input($signature)
                 .', helpdesk_url='.db_input(URL)
                 .', helpdesk_title='.db_input($vars['name']);
-            if(!mysql_query($sql) || !($cid=mysql_insert_id()))
+            if(!db_query($sql, false) || !($cid=db_insert_id()))
                 $this->errors['err']='Unable to create config settings (#7)';
         }
 
@@ -203,10 +203,10 @@ class Installer extends SetupWizard {
         /************* Make the system happy ***********************/
 
         $sql='UPDATE '.PREFIX."email SET dept_id=$dept_id_1";
-        mysql_query($sql);
+        db_query($sql, false);
         $sql='UPDATE '.PREFIX."department SET email_id=$email_id_1"
             .", autoresp_email_id=$email_id_1";
-        mysql_query($sql);
+        db_query($sql, false);
 
         //Create a ticket to make the system warm and happy.
         $sql='INSERT INTO '.PREFIX.'ticket SET created=NOW(), status="open", source="Web" '
@@ -215,7 +215,7 @@ class Installer extends SetupWizard {
             .' ,email="support@osticket.com" '
             .' ,name="osTicket Support" '
             .' ,subject="osTicket Installed!"';
-        if(mysql_query($sql) && ($tid=mysql_insert_id())) {
+        if(db_query($sql, false) && ($tid=db_insert_id())) {
             if(!($msg=file_get_contents(INC_DIR.'msg/installed.txt')))
                 $msg='Congratulations and Thank you for choosing osTicket!';
 
@@ -225,7 +225,7 @@ class Installer extends SetupWizard {
                 .', ticket_id='.db_input($tid)
                 .', title='.db_input('osTicket Installed')
                 .', body='.db_input($msg);
-            @mysql_query($sql);
+            db_query($sql, false);
         }
         //TODO: create another personalized ticket and assign to admin??
 
@@ -235,7 +235,7 @@ class Installer extends SetupWizard {
             .', title="osTicket installed!"'
             .', log='.db_input($msg)
             .', ip_address='.db_input($_SERVER['REMOTE_ADDR']);
-        @mysql_query($sql);
+        db_query($sql, false);
 
         return true;
     }