diff --git a/include/mysql.php b/include/mysql.php
index 7a3819f4e839f891b8dfb940f73d57209cc436d5..15a8a432b3aa6402df15bc93a56d2c66ddd54c65 100644
--- a/include/mysql.php
+++ b/include/mysql.php
@@ -74,7 +74,7 @@
         return ($database && @mysql_select_db($database));
     }
 
-    function db_create_database($database, $charset='utf8', $collate='utf8_unicode_ci') {
+    function db_create_database($database, $charset='utf8', $collate='utf8_general_ci') {
         return @mysql_query(sprintf('CREATE DATABASE %s DEFAULT CHARACTER SET %s COLLATE %s', $database, $charset, $collate));
     }
    
diff --git a/include/upgrader/sql/435c62c3-2e7531a2.patch.sql b/include/upgrader/sql/435c62c3-2e7531a2.patch.sql
index 9537d1acba838be54ec1ece8c7ab4a80545f1bc0..760a6b0c3679bad02e6dd5f7d4c09089a2ddd38e 100644
--- a/include/upgrader/sql/435c62c3-2e7531a2.patch.sql
+++ b/include/upgrader/sql/435c62c3-2e7531a2.patch.sql
@@ -10,7 +10,7 @@ CREATE TABLE `%TABLE_PREFIX%group_dept_access` (
   `dept_id` int(10) unsigned NOT NULL default '0',
   UNIQUE KEY `group_dept`  (`group_id`,`dept_id`),
   KEY `dept_id` (`dept_id`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
 -- Extend membership to groups
 ALTER TABLE `%TABLE_PREFIX%department`
diff --git a/include/upgrader/sql/98ae1ed2-e342f869.patch.sql b/include/upgrader/sql/98ae1ed2-e342f869.patch.sql
index 4fc011ce8a01ec56e8dfafa0d4da9a5300335b4c..3c2f57454f852eaef23d59dd603543b0df56177f 100644
--- a/include/upgrader/sql/98ae1ed2-e342f869.patch.sql
+++ b/include/upgrader/sql/98ae1ed2-e342f869.patch.sql
@@ -143,7 +143,7 @@ CREATE TABLE `%TABLE_PREFIX%api_key` (
   `created` datetime NOT NULL default '0000-00-00 00:00:00',
   PRIMARY KEY  (`id`),
   UNIQUE KEY `ipaddr` (`ipaddr`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
 DROP TABLE IF EXISTS `%TABLE_PREFIX%syslog`;
 CREATE TABLE `%TABLE_PREFIX%syslog` (
@@ -157,7 +157,7 @@ CREATE TABLE `%TABLE_PREFIX%syslog` (
   `updated` datetime NOT NULL default '0000-00-00 00:00:00',
   PRIMARY KEY  (`log_id`),
   KEY `log_type` (`log_type`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 UPDATE `%TABLE_PREFIX%config`
     SET `ostversion`='1.6 RC5';
diff --git a/include/upgrader/sql/9f3b454c-c0fd16f4.patch.sql b/include/upgrader/sql/9f3b454c-c0fd16f4.patch.sql
new file mode 100644
index 0000000000000000000000000000000000000000..bcd1eedebedeb73bdbf1bb6f8444319c4adec16f
--- /dev/null
+++ b/include/upgrader/sql/9f3b454c-c0fd16f4.patch.sql
@@ -0,0 +1,28 @@
+/**
+ * @version v1.7
+ *
+ * @schema c0fd16f4eaf99b920be9f7fc6ebead32
+ */
+
+-- Increment varchar size for various fields... based on feedback from users.
+
+ALTER TABLE  `%TABLE_PREFIX%session` 
+    CHANGE  `session_id`  `session_id` VARCHAR( 256 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT  '';
+
+ALTER TABLE  `%TABLE_PREFIX%ticket` 
+    CHANGE  `name`  `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT  '',
+    CHANGE  `email`  `email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT  '',
+    CHANGE  `subject`  `subject` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT  '[no subject]';
+
+ALTER TABLE  `%TABLE_PREFIX%email` 
+    CHANGE  `email`  `email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT  '',
+    CHANGE  `name`  `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT  '',
+    CHANGE  `userid`  `userid` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+    CHANGE  `mail_host`  `mail_host` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+    CHANGE  `smtp_host`  `smtp_host` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
+
+ALTER TABLE  `%TABLE_PREFIX%department` 
+    CHANGE  `dept_name`  `dept_name` VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT  '';
+
+UPDATE `%TABLE_PREFIX%config`
+    SET `schema_signature`='c0fd16f4eaf99b920be9f7fc6ebead32';
diff --git a/include/upgrader/sql/c00511c7-7be60a84.patch.sql b/include/upgrader/sql/c00511c7-7be60a84.patch.sql
index 80e652cc7a91d3cc7a90f18c4059343651d49099..25465e81bfc1aed8ee5399c1a4d6be3db59a29ea 100644
--- a/include/upgrader/sql/c00511c7-7be60a84.patch.sql
+++ b/include/upgrader/sql/c00511c7-7be60a84.patch.sql
@@ -88,7 +88,7 @@ CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%sla` (
     `updated` datetime NOT NULL,
     PRIMARY KEY  (`id`),
     UNIQUE KEY `name` (`name`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  
 -- Create a default SLA
 INSERT INTO `%TABLE_PREFIX%sla` (`isactive`, `enable_priority_escalation`,
@@ -109,7 +109,7 @@ CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%team` (
     UNIQUE KEY `name` (`name`),
     KEY `isnabled` (`isenabled`),
     KEY `lead_id` (`lead_id`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 -- Create a default TEAM
 INSERT INTO `%TABLE_PREFIX%team` (`lead_id`, `isenabled`, `noalerts`, `name`, `notes`, `created`, `updated`)
@@ -121,7 +121,7 @@ CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%team_member` (
   `staff_id` int(10) unsigned NOT NULL,
   `updated` datetime NOT NULL,
   PRIMARY KEY  (`team_id`,`staff_id`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 ALTER TABLE `%TABLE_PREFIX%department`
     ADD sla_id INT UNSIGNED NOT NULL DEFAULT '0' AFTER tpl_id;
diff --git a/main.inc.php b/main.inc.php
index 045fcd502deed01f2fb96171fa70d54c154c0f99..2dc651c9979d9d3cdda518efeb274f49e1d57d37 100644
--- a/main.inc.php
+++ b/main.inc.php
@@ -63,7 +63,7 @@
 
     #Current version && schema signature (Changes from version to version)
     define('THIS_VERSION','1.7-RC4+'); //Shown on admin panel
-    define('SCHEMA_SIGNATURE','9f3b454c06dfd5ee96003eae5182ac13'); //MD5 signature of the db schema. (used to trigger upgrades)
+    define('SCHEMA_SIGNATURE', 'c0fd16f4eaf99b920be9f7fc6ebead32'); //MD5 signature of the db schema. (used to trigger upgrades)
     #load config info
     $configfile='';
     if(file_exists(ROOT_DIR.'ostconfig.php')) //Old installs prior to v 1.6 RC5
diff --git a/setup/inc/class.installer.php b/setup/inc/class.installer.php
index f355fbe04cf8a55aaa50bac9e9672131b3c3354a..0e2e19f57af70490fb678f84455c7cd5103c35ee 100644
--- a/setup/inc/class.installer.php
+++ b/setup/inc/class.installer.php
@@ -95,6 +95,9 @@ class Installer extends SetupWizard {
                 if(mysql_query($sql)) {
                     $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');
                 }
             }
         }
diff --git a/setup/inc/sql/osTicket-mysql.sql b/setup/inc/sql/osTicket-mysql.sql
index 004b9934092948798fc84adbe2e987af6006cd2b..ba980b876cb9038a4f9a559037fad104d85b312d 100644
--- a/setup/inc/sql/osTicket-mysql.sql
+++ b/setup/inc/sql/osTicket-mysql.sql
@@ -173,7 +173,7 @@ CREATE TABLE `%TABLE_PREFIX%department` (
   `email_id` int(10) unsigned NOT NULL default '0',
   `autoresp_email_id` int(10) unsigned NOT NULL default '0',
   `manager_id` int(10) unsigned NOT NULL default '0',
-  `dept_name` varchar(32) NOT NULL default '',
+  `dept_name` varchar(128) NOT NULL default '',
   `dept_signature` tinytext NOT NULL,
   `ispublic` tinyint(1) unsigned NOT NULL default '1',
   `group_membership` tinyint(1) NOT NULL default '0',
@@ -198,12 +198,12 @@ CREATE TABLE `%TABLE_PREFIX%email` (
   `noautoresp` tinyint(1) unsigned NOT NULL default '0',
   `priority_id` tinyint(3) unsigned NOT NULL default '2',
   `dept_id` tinyint(3) unsigned NOT NULL default '0',
-  `email` varchar(125) NOT NULL default '',
-  `name` varchar(32) NOT NULL default '',
-  `userid` varchar(125) NOT NULL,
+  `email` varchar(255) NOT NULL default '',
+  `name` varchar(255) NOT NULL default '',
+  `userid` varchar(255) NOT NULL,
   `userpass` varchar(125) NOT NULL,
   `mail_active` tinyint(1) NOT NULL default '0',
-  `mail_host` varchar(125) NOT NULL,
+  `mail_host` varchar(255) NOT NULL,
   `mail_protocol` enum('POP','IMAP') NOT NULL default 'POP',
   `mail_encryption` enum('NONE','SSL') NOT NULL,
   `mail_port` int(6) default NULL,
@@ -215,7 +215,7 @@ CREATE TABLE `%TABLE_PREFIX%email` (
   `mail_lasterror` datetime default NULL,
   `mail_lastfetch` datetime default NULL,
   `smtp_active` tinyint(1) default '0',
-  `smtp_host` varchar(125) NOT NULL,
+  `smtp_host` varchar(255) NOT NULL,
   `smtp_port` int(6) default NULL,
   `smtp_secure` tinyint(1) NOT NULL default '1',
   `smtp_auth` tinyint(1) NOT NULL default '1',
@@ -383,7 +383,7 @@ CREATE TABLE `%TABLE_PREFIX%group_dept_access` (
   `dept_id` int(10) unsigned NOT NULL default '0',
   UNIQUE KEY `group_dept` (`group_id`,`dept_id`),
   KEY `dept_id`  (`dept_id`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
 INSERT INTO `%TABLE_PREFIX%group_dept_access` (`group_id`, `dept_id`) VALUES
     (1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2);
@@ -449,7 +449,7 @@ INSERT INTO `%TABLE_PREFIX%canned_attachment` (`canned_id`, `file_id`) VALUES (1
 
 DROP TABLE IF EXISTS `%TABLE_PREFIX%session`;
 CREATE TABLE `%TABLE_PREFIX%session` (
-  `session_id` varchar(32) collate utf8_unicode_ci NOT NULL default '',
+  `session_id` varchar(256) collate utf8_unicode_ci NOT NULL default '',
   `session_data` longtext collate utf8_unicode_ci,
   `session_expire` datetime default NULL,
   `session_updated` datetime default NULL,
@@ -558,7 +558,7 @@ CREATE TABLE `%TABLE_PREFIX%team_member` (
   `staff_id` int(10) unsigned NOT NULL,
   `updated` datetime NOT NULL,
   PRIMARY KEY  (`team_id`,`staff_id`)
-) ENGINE=MyISAM;
+) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
 DROP TABLE IF EXISTS `%TABLE_PREFIX%ticket`;
 CREATE TABLE `%TABLE_PREFIX%ticket` (
@@ -570,9 +570,9 @@ CREATE TABLE `%TABLE_PREFIX%ticket` (
   `topic_id` int(10) unsigned NOT NULL default '0',
   `staff_id` int(10) unsigned NOT NULL default '0',
   `team_id` int(10) unsigned NOT NULL default '0',
-  `email` varchar(120) NOT NULL default '',
-  `name` varchar(32) NOT NULL default '',
-  `subject` varchar(64) NOT NULL default '[no subject]',
+  `email` varchar(255) NOT NULL default '',
+  `name` varchar(255) NOT NULL default '',
+  `subject` varchar(255) NOT NULL default '[no subject]',
   `phone` varchar(16) default NULL,
   `phone_ext` varchar(8) default NULL,
   `ip_address` varchar(64) NOT NULL default '',
diff --git a/setup/inc/sql/osTicket-mysql.sql.md5 b/setup/inc/sql/osTicket-mysql.sql.md5
index 49a6e93dd4e013257c9abf0f1117e12241ee381c..db25b4569b60dcd93349db6f4f51cd58047ef807 100644
--- a/setup/inc/sql/osTicket-mysql.sql.md5
+++ b/setup/inc/sql/osTicket-mysql.sql.md5
@@ -1 +1 @@
-9f3b454c06dfd5ee96003eae5182ac13
+c0fd16f4eaf99b920be9f7fc6ebead32