diff --git a/install/install.php b/install/install.php
index 0df226ee10d4cab3407d7341ea9d928130a20b53..7bc3836223514ae3685b1d49543818d725c3c6df 100644
--- a/install/install.php
+++ b/install/install.php
@@ -146,7 +146,6 @@ include_once 'dist/conf/'.$dist['confid'].'.conf.php';
 //** Installer Interface
 //****************************************************************************************************
 $inst = new installer();
-if (!$inst->get_php_version()) die('ISPConfig requires PHP '.$inst->min_php."\n");
 $retval=shell_exec("which which");
 if (empty($retval)) die ("ISPConfig requires which \n");
 
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index a92b821d1d797fb766e0c60d42f9a964950c85a7..95c6cb87ef00dbe54f7cacae990e1b995ef13c3d 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -35,7 +35,6 @@ class installer_base {
 	var $db;
 	public $install_ispconfig_interface = true;
 	public $is_update = false; // true if it is an update, false if it is a new install
-	public $min_php = '5.4'; // minimal php-version for update / install
 	protected $mailman_group = 'list';
 
 
@@ -160,12 +159,6 @@ class installer_base {
 		}
 	}
 
-	//** Detect PHP-Version
-	public function get_php_version() {
-		if(version_compare(PHP_VERSION, $this->min_php, '<')) return false;
-		else return true;
-	}
-
 	public function crypt_password($cleartext_password, $charset = 'UTF-8') {
 		if($charset != 'UTF-8') {
 			$cleartext_password = mb_convert_encoding($cleartext_password, $charset, 'UTF-8');
diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index 175617605ac2ee7c673099ea7b24ad8edf1403b5..028fb68a6bf01b7eaaf2a9b4913ec0227e2e490d 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -59,6 +59,7 @@ overquota_notify_client=y
 overquota_notify_freq=7
 overquota_notify_onok=n
 sendmail_path=/usr/sbin/sendmail
+rspamd_url=
 
 [getmail]
 getmail_config_dir=/etc/getmail
diff --git a/install/update.php b/install/update.php
index 4043647d8e4376480a5d55eb8f8117bafc18bd09..46031f77bb349960fd4be8888fbbc4dea66d4b75 100644
--- a/install/update.php
+++ b/install/update.php
@@ -185,7 +185,6 @@ $conf['server_id'] = intval($conf_old["server_id"]);
 $conf['ispconfig_log_priority'] = $conf_old["log_priority"];
 
 $inst = new installer();
-if (!$inst->get_php_version()) die('ISPConfig requieres PHP '.$inst->min_php."\n");
 $inst->is_update = true;
 
 $inst->check_prerequisites();
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 7bed0323da37fec75d16cdb4dbcf477df80f46d5..1818b2ef3b6035f24dbdc8b9892d3e37077b73b8 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -717,6 +717,18 @@ $form["tabs"]['mail'] = array(
 			'default' => 'n',
 			'value' => array(0 => 'n', 1 => 'y')
 		),
+		'rspamd_url' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'filters'   => array(
+				0 => array( 'event' => 'SAVE', 'type' => 'IDNTOASCII'),
+				1 => array( 'event' => 'SHOW', 'type' => 'IDNTOUTF8')
+			),
+			'value' => '',
+			'width' => '40',
+			'maxlength' => '255'
+		),
 		//#################################
 		// END Datatable fields
 		//#################################
diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php
index 339ac2f2f5605d9b6ad0ccb2d2d462113aee3b4f..1fd1921b84e38562f1b756426c63bddf801430a3 100644
--- a/interface/web/admin/server_config_edit.php
+++ b/interface/web/admin/server_config_edit.php
@@ -57,7 +57,7 @@ class page_action extends tform_actions {
 		
 		// get the config
 		$app->uses('getconf');
-		$web_config = $app->getconf->get_server_config($conf['server_id'], 'web');
+		$web_config = $app->getconf->get_server_config($this->id, 'web');
 		
 		if($web_config['server_type'] == 'nginx'){
 			unset($app->tform->formDef["tabs"]["fastcgi"]);
@@ -90,8 +90,12 @@ class page_action extends tform_actions {
 			$this->dataRecord = $app->getconf->get_server_config($server_id, $section);
 
 			if($section == 'mail'){
-				$server_config = $app->getconf->get_server_config($server_id, 'server');
-				$rspamd_url = 'https://'.$server_config['hostname'].':8081/rspamd/';
+				if(trim($this->dataRecord['rspamd_url'] == '')) {
+					$server_config = $app->getconf->get_server_config($server_id, 'server');
+					$rspamd_url = 'https://'.$server_config['hostname'].':8081/rspamd/';
+				} else {
+					$rspamd_url = $this->dataRecord['rspamd_url'];
+				}
 			}
 		}
 
diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm
index c26cff24ba8b1fa0bdea00722a398437fd00fb08..76ed5ef4fbc410879227a79f751aaca196b50737 100644
--- a/interface/web/admin/templates/server_config_mail_edit.htm
+++ b/interface/web/admin/templates/server_config_mail_edit.htm
@@ -49,7 +49,13 @@
             </div>
 			<div class="form-group rspamd">
                 <label for="rspamd_url" class="col-sm-3 control-label col-text">{tmpl_var name='rspamd_url_txt'}</label>
-                <div class="col-sm-6"><a href="{tmpl_var name='rspamd_url'}" target="_blank">{tmpl_var name='rspamd_url'}</a><a href="{tmpl_var name='rspamd_url'}" target="_blank" class="btn btn-default formbutton-default formbutton-narrow" style="margin-left:20px"><span class="icon icon-link"></span></a></div>
+				<div class="col-sm-8"><div class="input-group">
+					<input type="text" name="rspamd_url" id="rspamd_url" value="{tmpl_var name='rspamd_url'}" class="form-control" />
+					<span class="input-group-btn">
+						<a href="{tmpl_var name='rspamd_url'}" target="_blank" class="btn btn-default formbutton-default formbutton-narrow" style="margin-left:20px"><span class="icon icon-link"></span></a>
+					</span>
+				</div></div>
+			</div>
             </div>
 			<div class="form-group rspamd">
                 <label for="rspamd_password" class="col-sm-3 control-label">{tmpl_var name='rspamd_password_txt'}</label>
diff --git a/interface/web/login/index.php b/interface/web/login/index.php
index d820e917c98e29ad290a95ec1408e9bb125665da..58456dea0e4b855b642395b7756b12c2aec65136 100644
--- a/interface/web/login/index.php
+++ b/interface/web/login/index.php
@@ -58,7 +58,7 @@ if($app->is_under_maintenance()) {
 if(count($_POST) > 0) {
 
 	//** Check variables
-	if(!preg_match("/^[\w\.\-\_\@]{1,128}$/", $_POST['username'])) $error = $app->lng('user_regex_error');
+	if(!preg_match("/^[\w\.\-\_\@]{1,128}$/", $app->functions->idn_encode($_POST['username']))) $error = $app->lng('user_regex_error');
 	if(!preg_match("/^.{1,256}$/i", $_POST['password'])) $error = $app->lng('pw_error_length');
 
 	//** importing variables
@@ -152,7 +152,7 @@ if(count($_POST) > 0) {
 				if(stristr($username, '@')) {
 					//* mailuser login
 					$sql = "SELECT * FROM mail_user WHERE login = ? or email = ?";
-					$mailuser = $app->db->queryOneRecord($sql, $username, $username);
+					$mailuser = $app->db->queryOneRecord($sql, $username, $app->functions->idn_encode($username));
 					$user = false;
 					if($mailuser) {
 						$saved_password = stripslashes($mailuser['password']);
diff --git a/interface/web/mailuser/index.php b/interface/web/mailuser/index.php
index c9541df2bd1919395946bcd1379cd16727cbeeb9..a6e2ae2389b151687829e8fc6024221fcd2a5666 100644
--- a/interface/web/mailuser/index.php
+++ b/interface/web/mailuser/index.php
@@ -28,8 +28,10 @@ if($rec['quota'] == 0) {
 
 if($rec['cc'] == '') $rec['cc'] = $wb['none_txt'];
 
-$app->tpl->setVar($rec);
+$rec['email'] = $app->functions->idn_decode($rec['email']);
+$rec['login'] = $app->functions->idn_decode($rec['login']);
 
+$app->tpl->setVar($rec);
 $sql2 = "SELECT * FROM server WHERE server_id = ?";
 $rec2 = $app->db->queryOneRecord($sql2, $rec['server_id']);
 
diff --git a/interface/web/mailuser/mail_user_cc_edit.php b/interface/web/mailuser/mail_user_cc_edit.php
index 778be781ece87a4d7ee5f35bc715c96aafb2cc01..9a63b2d95390bc303ffb294d507693c62a7dceb6 100644
--- a/interface/web/mailuser/mail_user_cc_edit.php
+++ b/interface/web/mailuser/mail_user_cc_edit.php
@@ -75,7 +75,7 @@ class page_action extends tform_actions {
 		global $app, $conf;
 
 		$rec = $app->tform->getDataRecord($this->id);
-		$app->tpl->setVar("email", $rec['email'], true);
+		$app->tpl->setVar("email", $app->functions->idn_decode($rec['email']), true);
 
 		parent::onShowEnd();
 	}
diff --git a/interface/web/mailuser/mail_user_password_edit.php b/interface/web/mailuser/mail_user_password_edit.php
index 5c5706177a6b2d0fa41b7a9edd386546764ed688..10a8e75e7efbb2c6c12be8ff76934c5cbb83862d 100644
--- a/interface/web/mailuser/mail_user_password_edit.php
+++ b/interface/web/mailuser/mail_user_password_edit.php
@@ -63,7 +63,7 @@ class page_action extends tform_actions {
 		global $app, $conf;
 
 		$rec = $app->tform->getDataRecord($_SESSION['s']['user']['mailuser_id']);
-		$app->tpl->setVar("email", $rec['email'], true);
+		$app->tpl->setVar("email", $app->functions->idn_decode($rec['email']), true);
 
 		parent::onShowEnd();
 	}
diff --git a/interface/web/mailuser/mail_user_spamfilter_edit.php b/interface/web/mailuser/mail_user_spamfilter_edit.php
index 75649b5a707f3b89e5c4606d7019bc84c967bf0f..8d1e70ba203c5eaf9603b141ea180561897c8912 100644
--- a/interface/web/mailuser/mail_user_spamfilter_edit.php
+++ b/interface/web/mailuser/mail_user_spamfilter_edit.php
@@ -112,7 +112,7 @@ class page_action extends tform_actions {
 		global $app, $conf;
 
 		$rec = $app->tform->getDataRecord($this->id);
-		$app->tpl->setVar("email", $rec['email'], true);
+		$app->tpl->setVar("email", $app->functions->idn_decode($rec['email']), true);
 
 		// Get the spamfilter policys for the user
 		$tmp_user = $app->db->queryOneRecord("SELECT policy_id FROM spamfilter_users WHERE email = ?", $rec['email']);