diff --git a/install/install.php b/install/install.php
index 4437bd8fa387e0407271c4c79df27fb1282e1ec7..cdf6806092be0f2d5f81db3468a4e9e8bdb702b8 100644
--- a/install/install.php
+++ b/install/install.php
@@ -536,7 +536,16 @@ if($force) {
 	$inst->configure_fail2ban();
 }
 
+// create acme vhost
+if($conf['nginx']['installed'] == true) {
+	$inst->make_acme_vhost('nginx'); // we need this config file but we don't want nginx to be restarted at this point
+}
+if($conf['apache']['installed'] == true) {
+	$inst->make_acme_vhost('apache'); // we need this config file but we don't want apache to be restarted at this point
+}
+
 //** Configure ISPConfig :-)
+$issue_tried = false;
 $install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == 'y')?'n':'y';
 if($install_mode == 'standard' || strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default,'install_ispconfig_web_interface')) == 'y') {
 	swriteln('Installing ISPConfig');
@@ -563,6 +572,7 @@ if($install_mode == 'standard' || strtolower($inst->simple_query('Install ISPCon
 
 	if(strtolower($inst->simple_query('Do you want a secure (SSL) connection to the ISPConfig web interface', array('y', 'n'), 'y','ispconfig_use_ssl')) == 'y') {
 		$inst->make_ispconfig_ssl_cert();
+		$issue_tried = true;
 	}
 	$inst->install_ispconfig_interface = true;
 
@@ -572,8 +582,9 @@ if($install_mode == 'standard' || strtolower($inst->simple_query('Install ISPCon
 
 // Create SSL certs for non-webserver(s)?
 if(!file_exists('/usr/local/ispconfig/interface/ssl/ispserver.crt')) {
-    if(strtolower($inst->simple_query('Do you want to create SSL certs for your server?', array('y', 'n'), 'y')) == 'y')
+    if(!$issue_tried && strtolower($inst->simple_query('Do you want to create SSL certs for your server?', array('y', 'n'), 'y')) == 'y') {
         $inst->make_ispconfig_ssl_cert();
+	}
 } else {
 	swriteln('Certificate exists. Not creating a new one.');
 }
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 839e212d949081fd560171f4c3a7ebf017ed490f..7d0e19c592daaf2605510ce25fb013f0eeb77339 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1169,6 +1169,9 @@ class installer_base {
 		    $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content)));
 		}
 
+		// Remove comment lines, these would give fatal errors when passed to postconf.
+		$postconf_commands = array_filter($postconf_commands, function($line) { return preg_match('/^[^#]/', $line); });
+
 		//* These postconf commands will be executed on installation only
 		if($this->is_update == false) {
 			$postconf_commands = array_merge($postconf_commands, array(
@@ -2550,7 +2553,7 @@ class installer_base {
 			}
 
 			// comment out the listen directive if port is 80 or 443
-			if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) {
+			if($conf['web']['apps_vhost_port'] == 80 or $conf['web']['apps_vhost_port'] == 443) {
 				$tpl->setVar('vhost_port_listen','#');
 			} else {
 				$tpl->setVar('vhost_port_listen','');
@@ -2718,9 +2721,15 @@ class installer_base {
 		return $response;
 	}
 
-	private function make_acme_vhost($server_name, $server = 'apache') {
+	public function make_acme_vhost($server = 'apache') {
 		global $conf;
 
+		if($conf['hostname'] !== 'localhost' && $conf['hostname'] !== '') {
+			$server_name = $conf['hostname'];
+		} else {
+			$server_name = exec('hostname -f');
+		}
+
 		$use_template = 'apache_acme.conf.master';
 		$use_symlink = '999-acme.conf';
 		$use_name = 'acme.conf';
@@ -2756,14 +2765,6 @@ class installer_base {
 		if(!@is_link($vhost_conf_enabled_dir.'' . $use_symlink)) {
 			symlink($vhost_conf_dir.'/' . $use_name, $vhost_conf_enabled_dir.'/' . $use_symlink);
 		}
-
-		if($conf[$server]['installed'] == true && $conf[$server]['init_script'] != '') {
-			if($this->is_update) {
-				system($this->getinitcommand($conf[$server]['init_script'], 'force-reload').' &> /dev/null || ' . $this->getinitcommand($conf[$server]['init_script'], 'restart').' &> /dev/null');
-			} else {
-				system($this->getinitcommand($conf[$server]['init_script'], 'restart').' &> /dev/null');
-			}
-		}
 	}
 
 	public function make_ispconfig_ssl_cert() {
@@ -2834,12 +2835,18 @@ class installer_base {
 		}
 
 		swriteln('Using certificate path ' . $acme_cert_dir);
+		$ip_address_match = false;
 		if(!(($svr_ip4 && in_array($svr_ip4, $dns_ips)) || ($svr_ip6 && in_array($svr_ip6, $dns_ips)))) {
 			swriteln('Server\'s public ip(s) (' . $svr_ip4 . ($svr_ip6 ? ', ' . $svr_ip6 : '') . ') not found in A/AAAA records for ' . $hostname . ': ' . implode(', ', $dns_ips));
+			if(strtolower($inst->simple_query('Ignore DNS check and continue to request certificate?', array('y', 'n') , 'n','ignore_hostname_dns')) == 'y') {
+				$ip_address_match = true;
+			}
+		} else {
+			$ip_address_match = true;
 		}
 
 
-		if ((!@is_dir($acme_cert_dir) || !@file_exists($check_acme_file) || !@file_exists($ssl_crt_file) || md5_file($check_acme_file) != md5_file($ssl_crt_file)) && (($svr_ip4 && in_array($svr_ip4, $dns_ips)) || ($svr_ip6 && in_array($svr_ip6, $dns_ips)))) {
+		if ((!@is_dir($acme_cert_dir) || !@file_exists($check_acme_file) || !@file_exists($ssl_crt_file) || md5_file($check_acme_file) != md5_file($ssl_crt_file)) && $ip_address_match == true) {
 
 			// This script is needed earlier to check and open http port 80 or standalone might fail
 			// Make executable and temporary symlink latest letsencrypt pre, post and renew hook script before install
@@ -2889,15 +2896,22 @@ class installer_base {
 			// first of all create the acme vhosts if not existing
 			if($conf['nginx']['installed'] == true) {
 				swriteln('Using nginx for certificate validation');
-				$this->make_acme_vhost($hostname, 'nginx');
+				$server = 'nginx';
 			} elseif($conf['apache']['installed'] == true) {
 				swriteln('Using apache for certificate validation');
 				if($this->is_update == false && @is_link($vhost_conf_enabled_dir.'/000-ispconfig.conf')) {
 					$restore_conf_symlink = true;
 					unlink($vhost_conf_enabled_dir.'/000-ispconfig.conf');
 				}
+				$server = 'apache';
+			}
 
-				$this->make_acme_vhost($hostname, 'apache');
+			if($conf[$server]['installed'] == true && $conf[$server]['init_script'] != '') {
+				if($this->is_update) {
+					system($this->getinitcommand($conf[$server]['init_script'], 'force-reload').' &> /dev/null || ' . $this->getinitcommand($conf[$server]['init_script'], 'restart').' &> /dev/null');
+				} else {
+					system($this->getinitcommand($conf[$server]['init_script'], 'restart').' &> /dev/null');
+				}
 			}
 
 			$issued_successfully = false;
@@ -2930,6 +2944,8 @@ class installer_base {
 						rename($ssl_pem_file, $ssl_pem_file . '-' . $date->format('YmdHis') . '.bak');
 					}
 
+					$check_acme_file = $ssl_crt_file;
+
 					// Define LE certs name and path, then install them
 					//$acme_cert = "--cert-file $acme_cert_dir/cert.pem";
 					$acme_key = "--key-file " . escapeshellarg($ssl_key_file);
@@ -2994,9 +3010,11 @@ class installer_base {
 					symlink($vhost_conf_dir.'/ispconfig.conf', $vhost_conf_enabled_dir.'/000-ispconfig.conf');
 				}
 			}
-		} elseif(($svr_ip4 && in_array($svr_ip4, $dns_ips)) || ($svr_ip6 && in_array($svr_ip6, $dns_ips))) {
-			// the directory already exists so we have to assume that it was created previously
-			$issued_successfully = true;
+		} else {
+			if($ip_address_match) {
+				// the directory already exists so we have to assume that it was created previously
+				$issued_successfully = true;
+			}
 		}
 
 		// If the LE SSL certs for this hostname exists
diff --git a/install/tpl/apache_acme.conf.master b/install/tpl/apache_acme.conf.master
index 4a1629433525ca40208b9e9e4db66f8f4d5730d2..38a68d29ead9db31af97623650f51f64bd59952f 100644
--- a/install/tpl/apache_acme.conf.master
+++ b/install/tpl/apache_acme.conf.master
@@ -1,11 +1,13 @@
-	Alias /.well-known/acme-challenge /usr/local/ispconfig/interface/acme/.well-known/acme-challenge
-
-	<Directory /usr/local/ispconfig/interface/acme>
-		AllowOverride None
+Alias /.well-known/acme-challenge /usr/local/ispconfig/interface/acme/.well-known/acme-challenge
+<Directory /usr/local/ispconfig/interface/acme/.well-known/acme-challenge>
 		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
 		Require all granted
 		<tmpl_else>
-		Order allow,deny
-		Allow from all
+        Order allow,deny
+        Allow from all
 		</tmpl_if>
-	</Directory>
+        <IfModule mpm_itk_module>
+           AssignUserId ispconfig ispconfig
+        </IfModule>
+</Directory>
+
diff --git a/install/tpl/apache_apps.vhost.master b/install/tpl/apache_apps.vhost.master
index b07bb03f41e73d8cca958bd283b8ab0c23b96094..8d6df71b7da0cf2c07e7e57cce50c77d04787b2e 100644
--- a/install/tpl/apache_apps.vhost.master
+++ b/install/tpl/apache_apps.vhost.master
@@ -122,3 +122,9 @@
 {/tmpl_if}
 
 </VirtualHost>
+
+<tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'>
+<IfModule mod_ssl.c>
+  <tmpl_var name="ssl_comment">SSLStaplingCache shmcb:/var/run/ocsp(128000)
+</IfModule>
+</tmpl_if>
diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master
index a376f68d8270f9b1c6bf6076c0471fd5ef7d0a8d..7d57e00517066e7935895c7cdb127df5b78ec77e 100644
--- a/install/tpl/apache_ispconfig.conf.master
+++ b/install/tpl/apache_ispconfig.conf.master
@@ -132,19 +132,6 @@ CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m
 
 Alias /awstats-icon "/usr/share/awstats/icon"
 
-Alias /.well-known/acme-challenge /usr/local/ispconfig/interface/acme/.well-known/acme-challenge
-<Directory /usr/local/ispconfig/interface/acme/.well-known/acme-challenge>
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
-        Order allow,deny
-        Allow from all
-		</tmpl_if>
-        <IfModule mpm_itk_module>
-           AssignUserId ispconfig ispconfig
-        </IfModule>
-</Directory>
-
 NameVirtualHost *:80
 NameVirtualHost *:443
 <tmpl_loop name="ip_adresses">
diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master
index 1080eeb5599706a7c1361def9500c621e6808480..53eff3864251823aea98a4b5907b02b223d3df7d 100644
--- a/install/tpl/debian6_dovecot2.conf.master
+++ b/install/tpl/debian6_dovecot2.conf.master
@@ -11,7 +11,6 @@ ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
 ssl_min_protocol = TLSv1.2
 ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
 ssl_prefer_server_ciphers = no
-auth_verbose = yes
 mail_max_userip_connections = 100
 mail_plugins = quota
 passdb {
diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master
index 60a1263e48e3d3e218c8ab9cf7f957a1ffca6fa7..4b3186a4a1e92b4b515c8370ffd507faa74a2320 100644
--- a/install/tpl/debian_dovecot2.conf.master
+++ b/install/tpl/debian_dovecot2.conf.master
@@ -10,7 +10,6 @@ ssl_key = </etc/postfix/smtpd.key
 ssl_min_protocol = TLSv1.2
 ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
 ssl_prefer_server_ciphers = no
-auth_verbose = yes
 mail_max_userip_connections = 100
 mail_plugins = $mail_plugins quota
 passdb {
diff --git a/install/tpl/fedora_dovecot2.conf.master b/install/tpl/fedora_dovecot2.conf.master
index 4b9bb5c6a9cc1bc142bd45468af930758b598444..d6218be41804a1d6252cb3b4010e21c1afe2634a 100644
--- a/install/tpl/fedora_dovecot2.conf.master
+++ b/install/tpl/fedora_dovecot2.conf.master
@@ -9,7 +9,6 @@ ssl_key = </etc/postfix/smtpd.key
 ssl_min_protocol = TLSv1.2
 ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
 ssl_prefer_server_ciphers = no
-auth_verbose = yes
 mail_plugins = quota
 passdb {
   args = /etc/dovecot-sql.conf
diff --git a/install/tpl/mysql-virtual_mailboxes.cf.master b/install/tpl/mysql-virtual_mailboxes.cf.master
index 281bedb07b531177f46a0e13a208ddc4c955bfb1..8b2677a1966cb2ba01add4139d06940651543e41 100644
--- a/install/tpl/mysql-virtual_mailboxes.cf.master
+++ b/install/tpl/mysql-virtual_mailboxes.cf.master
@@ -2,4 +2,4 @@ user = {mysql_server_ispconfig_user}
 password = {mysql_server_ispconfig_password}
 dbname = {mysql_server_database}
 hosts = {mysql_server_ip}
-query = select CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') from mail_user where login = '%s' and postfix = 'y' and disabledeliver = 'n' and server_id = {server_id}
+query = select CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') from mail_user where email = '%s' and postfix = 'y' and disabledeliver = 'n' and server_id = {server_id}
diff --git a/install/tpl/nginx_apps.vhost.master b/install/tpl/nginx_apps.vhost.master
index 2680b209a2522b8ef4455ffb73f4f835c3e66477..b91d1a16c5f05344b0d6c863e28c4043334d5414 100644
--- a/install/tpl/nginx_apps.vhost.master
+++ b/install/tpl/nginx_apps.vhost.master
@@ -1,5 +1,5 @@
 server {
-        listen {apps_vhost_port} {ssl_on};
+        listen {apps_vhost_ip}{apps_vhost_port} {ssl_on};
         listen [::]:{apps_vhost_port} {ssl_on} ipv6only=on;
 
         {ssl_comment}ssl_protocols TLSv1.2;
@@ -99,7 +99,7 @@ server {
                        fastcgi_param   REDIRECT_STATUS         200;
                        # To access phpMyAdmin, the default user (like www-data on Debian/Ubuntu) must be used
                        {use_tcp}fastcgi_pass 127.0.0.1:9000;
-                       {use_socket}fastcgi_pass unix:/var/run/php5-fpm.sock;
+                       {use_socket}fastcgi_pass unix:{fpm_socket};
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        fastcgi_buffer_size 128k;
@@ -149,7 +149,7 @@ server {
                        fastcgi_param   REDIRECT_STATUS         200;
                        # To access SquirrelMail, the default user (like www-data on Debian/Ubuntu) must be used
                        {use_tcp}fastcgi_pass 127.0.0.1:9000;
-                       {use_socket}fastcgi_pass unix:/var/run/php5-fpm.sock;
+                       {use_socket}fastcgi_pass unix:{fpm_socket};
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        fastcgi_buffer_size 128k;
diff --git a/install/update.php b/install/update.php
index 1b6331f7da289babdf0115aab4c8405a3291a942..75be8a46ccaf72fef45e4b87890b68d3e371899a 100644
--- a/install/update.php
+++ b/install/update.php
@@ -519,6 +519,15 @@ if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'sel
 //** Configure ISPConfig
 swriteln('Updating ISPConfig');
 
+$issue_tried = false;
+// create acme vhost
+if($conf['nginx']['installed'] == true) {
+	$inst->make_acme_vhost('nginx'); // we need this config file but we don't want nginx to be restarted at this point
+}
+if($conf['apache']['installed'] == true) {
+	$inst->make_acme_vhost('apache'); // we need this config file but we don't want apache to be restarted at this point
+}
+
 if ($inst->install_ispconfig_interface) {
 	//** Customise the port ISPConfig runs on
 	$ispconfig_port_number = get_ispconfig_port_number();
@@ -533,13 +542,15 @@ if ($inst->install_ispconfig_interface) {
 	// $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n';
 	if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no','create_new_ispconfig_ssl_cert')) == 'yes') {
 		$inst->make_ispconfig_ssl_cert();
+		$issue_tried = true;
 	}
 }
 
 // Create SSL certs for non-webserver(s)?
 if(!file_exists('/usr/local/ispconfig/interface/ssl/ispserver.crt')) {
-    if(strtolower($inst->simple_query('Do you want to create SSL certs for your server?', array('y', 'n'), 'y')) == 'y')
+    if(!$issue_tried && strtolower($inst->simple_query('Do you want to create SSL certs for your server?', array('y', 'n'), 'y')) == 'y') {
         $inst->make_ispconfig_ssl_cert();
+	}
 } else {
 	swriteln('Certificate exists. Not creating a new one.');
 }
diff --git a/interface/web/admin/form/firewall.tform.php b/interface/web/admin/form/firewall.tform.php
index e136b345be40b4cc6e48d0c16d1f98d1ef48a104..7c5a29b016023a26a5a88fd4492300a96ac654ef 100644
--- a/interface/web/admin/form/firewall.tform.php
+++ b/interface/web/admin/form/firewall.tform.php
@@ -76,7 +76,7 @@ $form["tabs"]['firewall'] = array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
 			'validators' => array (  0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[\s0-9\,\:]{0,255}$/',
+					'regex' => '/^\d{1,5}(?::\d{1,5})?(?:,\d{1,5}(?::\d{1,5})?)*$/',
 					'errmsg'=> 'tcp_ports_error_regex'),
 			),
 			'default' => '20,21,22,25,53,80,110,143,443,465,587,993,995,3306,8080,8081,10000',
@@ -88,8 +88,8 @@ $form["tabs"]['firewall'] = array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
 			'validators' => array (  0 => array ( 'type' => 'REGEX',
-					'regex' => '/^[\s0-9\,\:]{0,255}$/',
-					'errmsg'=> 'tcp_ports_error_regex'),
+					'regex' => '/^\d{1,5}(?::\d{1,5})?(?:,\d{1,5}(?::\d{1,5})?)*$/',
+					'errmsg'=> 'udp_ports_error_regex'),
 			),
 			'default' => '53,3306',
 			'value'  => '',
diff --git a/interface/web/admin/lib/lang/ar_firewall.lng b/interface/web/admin/lib/lang/ar_firewall.lng
index e626345d3c1ee3bbce74ffd70c36fcc7ff3297c2..4b1efe7540a4d997bb0a814a68f437082f768122 100644
--- a/interface/web/admin/lib/lang/ar_firewall.lng
+++ b/interface/web/admin/lib/lang/ar_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma';
 $wb['udp_port_help_txt'] = 'Separated by comma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
 ?>
diff --git a/interface/web/admin/lib/lang/br_firewall.lng b/interface/web/admin/lib/lang/br_firewall.lng
index da0936b007ed9c79766690839374599ecd208e37..3fd7f77d3e4f0c651d7dffaf10231649ccab6e0f 100644
--- a/interface/web/admin/lib/lang/br_firewall.lng
+++ b/interface/web/admin/lib/lang/br_firewall.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['server_id_txt'] = 'Servidor';
-$wb['tcp_port_txt'] = 'Portas tcp abertas';
-$wb['udp_port_txt'] = 'Portas udp abertas';
+$wb['tcp_port_txt'] = 'Portas TCP abertas';
+$wb['udp_port_txt'] = 'Portas UDP abertas';
 $wb['tcp_port_help_txt'] = 'Separado por vírgula';
 $wb['udp_port_help_txt'] = 'Separado por vírgula';
 $wb['active_txt'] = 'Ativo';
diff --git a/interface/web/admin/lib/lang/br_firewall_list.lng b/interface/web/admin/lib/lang/br_firewall_list.lng
index 94ef3aab7d61e48ec2d428211bb97357bb00072a..d90ee33d4e5b969bb8fbb1cf0f8c0bebf6755bf8 100644
--- a/interface/web/admin/lib/lang/br_firewall_list.lng
+++ b/interface/web/admin/lib/lang/br_firewall_list.lng
@@ -2,7 +2,7 @@
 $wb['list_head_txt'] = 'Firewall';
 $wb['active_txt'] = 'Ativo';
 $wb['server_id_txt'] = 'Servidor';
-$wb['tcp_port_txt'] = 'Portas tcp abertas';
-$wb['udp_port_txt'] = 'Portas udp abertas';
+$wb['tcp_port_txt'] = 'Portas TCP abertas';
+$wb['udp_port_txt'] = 'Portas UDP abertas';
 $wb['add_new_record_txt'] = 'Adicionar nova regra';
 ?>
diff --git a/interface/web/admin/lib/lang/ca_firewall.lng b/interface/web/admin/lib/lang/ca_firewall.lng
index 06a51c80cfded45c5d62e1a3618ec061033ae025..b81149e1c063da036681d55103a3430bb445fadd 100644
--- a/interface/web/admin/lib/lang/ca_firewall.lng
+++ b/interface/web/admin/lib/lang/ca_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma';
 $wb['udp_port_help_txt'] = 'Separated by comma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, \\":\\" and \\",\\".';
 ?>
diff --git a/interface/web/admin/lib/lang/dk_firewall.lng b/interface/web/admin/lib/lang/dk_firewall.lng
index 96608b2830ad4e755d195023c45083f03f658b7d..8137f0560a66a098ecceb5bb307a34144a0ab31e 100644
--- a/interface/web/admin/lib/lang/dk_firewall.lng
+++ b/interface/web/admin/lib/lang/dk_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Adskilt af komma';
 $wb['udp_port_help_txt'] = 'Adskilt af komma';
 $wb['active_txt'] = 'Aktiv';
 $wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne server.';
-$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i tcp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
-$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i udp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
+$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i TCP port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
+$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i UDP port definition. Tilladt tegn er tal, \\":\\" og \\",\\".';
 ?>
diff --git a/interface/web/admin/lib/lang/en_firewall.lng b/interface/web/admin/lib/lang/en_firewall.lng
index 94529325a14b88a8f7d59233a885e70866f16ccd..4b1efe7540a4d997bb0a814a68f437082f768122 100644
--- a/interface/web/admin/lib/lang/en_firewall.lng
+++ b/interface/web/admin/lib/lang/en_firewall.lng
@@ -6,7 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma';
 $wb['udp_port_help_txt'] = 'Separated by comma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['active_txt'] = 'Active';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".';
-?>
\ No newline at end of file
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
+?>
diff --git a/interface/web/admin/lib/lang/hu_firewall.lng b/interface/web/admin/lib/lang/hu_firewall.lng
index 461c16d324eda9154ddf9ef35fe07ca27f7ecf8e..1346d37657e86c288f3713f34795a623e7a0230e 100644
--- a/interface/web/admin/lib/lang/hu_firewall.lng
+++ b/interface/web/admin/lib/lang/hu_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Vesszővel elválasztva';
 $wb['udp_port_help_txt'] = 'Vesszővel elválasztva';
 $wb['active_txt'] = 'Aktív';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
 ?>
diff --git a/interface/web/admin/lib/lang/id_firewall.lng b/interface/web/admin/lib/lang/id_firewall.lng
index 34e13422593ac323a2383909417eececf6b899d8..f335c3f94f806f4151d32786f3eb098036825e74 100644
--- a/interface/web/admin/lib/lang/id_firewall.lng
+++ b/interface/web/admin/lib/lang/id_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Dipisahkan oleh koma';
 $wb['udp_port_help_txt'] = 'Dipisahkan oleh koma';
 $wb['active_txt'] = 'Aktif';
 $wb['firewall_error_unique'] = 'Telah ada record firewall untuk server ini.';
-$wb['tcp_ports_error_regex'] = 'Karakter di definisi port tcp tidak diperbolehkan. Karakter yang diizinkan adalah angka, : dan ,.';
-$wb['udp_ports_error_regex'] = 'Karakter di definisi port udp tidak diperbolehkan. Karakter yang diizinkan adalah angka, : dan ,.';
+$wb['tcp_ports_error_regex'] = 'Karakter di definisi port TCP tidak diperbolehkan. Karakter yang diizinkan adalah angka, : dan ,.';
+$wb['udp_ports_error_regex'] = 'Karakter di definisi port UDP tidak diperbolehkan. Karakter yang diizinkan adalah angka, : dan ,.';
 ?>
diff --git a/interface/web/admin/lib/lang/it_firewall.lng b/interface/web/admin/lib/lang/it_firewall.lng
index 95a4336dae81c06b19c7dfb7d869311085780c71..d523ea79f7bf2a66efa47f9d093efff87a56a49f 100644
--- a/interface/web/admin/lib/lang/it_firewall.lng
+++ b/interface/web/admin/lib/lang/it_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separate dalla virgola';
 $wb['udp_port_help_txt'] = 'Separate dalle virgola';
 $wb['active_txt'] = 'Attivo';
 $wb['firewall_error_unique'] = 'Esiste già  un record firewall per questo server.';
-$wb['tcp_ports_error_regex'] = 'Carattere non ammesso nella definizione di tcp port. Caratteri ammessi sono numeri, : e ,.';
-$wb['udp_ports_error_regex'] = 'Carattere non ammesso nella definizione di udp port. Caratteri ammessi sono numeri, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Carattere non ammesso nella definizione di TCP port. Caratteri ammessi sono numeri, : e ,.';
+$wb['udp_ports_error_regex'] = 'Carattere non ammesso nella definizione di UDP port. Caratteri ammessi sono numeri, : and ,.';
 ?>
diff --git a/interface/web/admin/lib/lang/ro_firewall.lng b/interface/web/admin/lib/lang/ro_firewall.lng
index e626345d3c1ee3bbce74ffd70c36fcc7ff3297c2..4b1efe7540a4d997bb0a814a68f437082f768122 100644
--- a/interface/web/admin/lib/lang/ro_firewall.lng
+++ b/interface/web/admin/lib/lang/ro_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma';
 $wb['udp_port_help_txt'] = 'Separated by comma';
 $wb['active_txt'] = 'Active';
 $wb['firewall_error_unique'] = 'There is already a firewall record for this server.';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
 ?>
diff --git a/interface/web/admin/lib/lang/ru_firewall.lng b/interface/web/admin/lib/lang/ru_firewall.lng
index 70beb30437001e94beb6109e8c518019a5d6059f..179ad739bad695d6b349d19177273cc8f2c2c75f 100644
--- a/interface/web/admin/lib/lang/ru_firewall.lng
+++ b/interface/web/admin/lib/lang/ru_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Перечислить порты TCP через з
 $wb['udp_port_help_txt'] = 'Перечислить порты UDP через запятую';
 $wb['active_txt'] = 'Активно';
 $wb['firewall_error_unique'] = 'Уже есть такая запись брандмауэра для этого сервера.';
-$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании tcp порта. Корректные сиволы - цифры, \\":\\" и \\",\\"';
+$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании TCP порта. Корректные сиволы - цифры, \\":\\" и \\",\\"';
 $wb['udp_ports_error_regex'] = 'Некорректный символ в указании UDP порта. Допустимые сиволы - цифры, \\":\\" и \\",\\"';
 ?>
diff --git a/interface/web/admin/lib/lang/se_firewall.lng b/interface/web/admin/lib/lang/se_firewall.lng
index 123a648300bc9d158e2ca319a1819619f4f96c52..fdbfa5ee14b33f90408c356e6d6868b6e3d8d030 100644
--- a/interface/web/admin/lib/lang/se_firewall.lng
+++ b/interface/web/admin/lib/lang/se_firewall.lng
@@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Kommaseparerade';
 $wb['udp_port_help_txt'] = 'Kommaseparerade';
 $wb['active_txt'] = 'Aktiv';
 $wb['firewall_error_unique'] = 'Det finns redan ett brandväggsinlägg för den här servern';
-$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, : and ,.';
-$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, : and ,.';
+$wb['tcp_ports_error_regex'] = 'Character not allowed in TCP port definition. Allowed characters are numbers, colons (:) and commas.';
+$wb['udp_ports_error_regex'] = 'Character not allowed in UDP port definition. Allowed characters are numbers, colons (:) and commas.';
 ?>
diff --git a/interface/web/admin/templates/language_add.htm b/interface/web/admin/templates/language_add.htm
index 30dc4d153c95a0a18bd2f08615fa5590935a0773..285f884ee39e7b39c035def843dd3698c30d7ec7 100644
--- a/interface/web/admin/templates/language_add.htm
+++ b/interface/web/admin/templates/language_add.htm
@@ -1,24 +1,32 @@
 <div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
+	<h1>
+		<tmpl_var name="list_head_txt">
+	</h1>
 </div>
-<p><tmpl_var name="list_desc_txt"></p>
+<p>
+	<tmpl_var name="list_desc_txt">
+</p>
 
+<div class="panel" style="padding:20px;">
+	<div class="pnl_formsarea">
+		<div class="form-group">
+			<label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label>
+			<div class="col-sm-9"><select name="lng_select" id="language" class="form-control flags">
+					{tmpl_var name='language_option'}
+				</select></div>
+		</div>
+		<div class="form-group">
+			<label for="lng_new" class="col-sm-3 control-label">{tmpl_var name='language_new_txt'}</label>
+			<div class="col-sm-9"><input type="text" name="lng_new" id="lng_new" value="" class="form-control" /></div>
+			<p class="formHint">{tmpl_var name='language_new_hint_txt'}</p>
+		</div>
 
-            <div class="form-group">
-                <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label>
-                <div class="col-sm-9"><select name="lng_select" id="language" class="form-control flags">
-                    {tmpl_var name='language_option'}
-                </select></div>
-            </div>
-            <div class="form-group">
-                <label for="lng_new" class="col-sm-3 control-label">{tmpl_var name='language_new_txt'}</label>
-                <div class="col-sm-9"><input type="text" name="lng_new" id="lng_new" value="" class="form-control" /></div><p class="formHint">{tmpl_var name='language_new_hint_txt'}</p>
-            </div>
-        
+		<input type="hidden" name="id" value="{tmpl_var name='id'}">
 
-        <input type="hidden" name="id" value="{tmpl_var name='id'}">
-
-        <div class="clear"><div class="right">
-            <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_add.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
+		<div class="clear">
+			<div class="right">
+				<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_add.php">{tmpl_var name='btn_save_txt'}</button>
+				<button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+			</div>
+		</div>
+	</div>
diff --git a/interface/web/admin/templates/language_complete.htm b/interface/web/admin/templates/language_complete.htm
index 53f42fc8fe39734c7190a1349b0d0cf5e7a0a0c6..0da59e11776ec422217e2432d3e8aa538b2fd016 100644
--- a/interface/web/admin/templates/language_complete.htm
+++ b/interface/web/admin/templates/language_complete.htm
@@ -1,30 +1,39 @@
 <div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
+	<h1>
+		<tmpl_var name="list_head_txt">
+	</h1>
 </div>
-<p><tmpl_var name="list_desc_txt"></p>
 
 <div class="panel panel_language_complete">
+	<div class="alert alert-info">
+		<p>
+			<tmpl_var name="list_desc_txt">
+		</p>
+	</div>
+	<tmpl_if name="msg">
+		<div id="OKMsg">
+			<tmpl_var name="msg">
+		</div>
+	</tmpl_if>
+	<tmpl_if name="error">
+		<div id="errorMsg">
+			<tmpl_var name="error">
+		</div>
+	</tmpl_if>
 
-    <tmpl_if name="msg">
-        <div id="OKMsg"><tmpl_var name="msg"></div>
-    </tmpl_if>
-    <tmpl_if name="error">
-        <div id="errorMsg"><tmpl_var name="error"></div>
-    </tmpl_if>
-
-    <div class="pnl_formsarea">
-        <div class="form-group">
-             <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label>
-            <div class="col-sm-9">
-                <select name="lng_select" id="language" class="form-control flags">{tmpl_var name='language_option'}</select>
-            </div>
-        </div>
+	<div class="pnl_formsarea">
+		<div class="form-group">
+			<label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label>
+			<div class="col-sm-9">
+				<select name="lng_select" id="language" class="form-control flags">{tmpl_var name='language_option'}</select>
+			</div>
+		</div>
 		<div class="clear">
-            <div class="right">
-			    <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_complete.php">{tmpl_var name='btn_save_txt'}</button>
-			    <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+			<div class="right">
+				<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_complete.php">{tmpl_var name='btn_save_txt'}</button>
+				<button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button>
 			</div>
-        </div>       
-    </div>
+		</div>
+	</div>
 
 </div>
diff --git a/interface/web/admin/templates/language_export.htm b/interface/web/admin/templates/language_export.htm
index a115e6493a7863228e341d58619e6737a6362ce1..bb9eb49164dc609533cf55ed6b3dedda562343c3 100644
--- a/interface/web/admin/templates/language_export.htm
+++ b/interface/web/admin/templates/language_export.htm
@@ -1,24 +1,35 @@
 <div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
+	<h1>
+		<tmpl_var name="list_head_txt">
+	</h1>
 </div>
-<p><tmpl_var name="list_desc_txt"></p>
+<p>
+	<tmpl_var name="list_desc_txt">
+</p>
 
+<div class="panel panel_language_import" style="padding:20px;">
+	<div class="pnl_formsarea">
+		<div class="form-group">
+			<label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label>
+			<div class="col-sm-9"><select name="lng_select" id="lng_select" class="form-control flags">
+					{tmpl_var name='language_option'}
+				</select></div>
+		</div>
+		<tmpl_if name="msg">
+			<div id="OKMsg">
+				<p>
+					<tmpl_var name="msg">
+				</p>
+			</div>
+		</tmpl_if>
 
-            <div class="form-group">
-                <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_select_txt'}</label>
-                <div class="col-sm-9"><select name="lng_select" id="lng_select" class="form-control flags">
-                    {tmpl_var name='language_option'}
-                </select></div>
-            </div>
-                
-                
-            <tmpl_if name="msg">
-                <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
-            </tmpl_if>
-                
-            <input type="hidden" name="id" value="{tmpl_var name='id'}">
-                
-            <div class="clear"><div class="right">
-                <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_export.php">{tmpl_var name='btn_save_txt'}</button>
-                <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-            </div></div>
+		<input type="hidden" name="id" value="{tmpl_var name='id'}">
+
+		<div class="clear">
+			<div class="right">
+				<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_export.php">{tmpl_var name='btn_save_txt'}</button>
+				<button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+			</div>
+		</div>
+	</div>
+</div>
diff --git a/interface/web/admin/templates/language_import.htm b/interface/web/admin/templates/language_import.htm
index 0761cc87ed863f948e889112a4529cd2f9134b64..963da26a4667b63ac87b4991f32397c6a3e83bcd 100644
--- a/interface/web/admin/templates/language_import.htm
+++ b/interface/web/admin/templates/language_import.htm
@@ -1,33 +1,54 @@
 <div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
+	<h1>
+		<tmpl_var name="list_head_txt">
+	</h1>
 </div>
-<p><tmpl_var name="list_desc_txt"></p>
+<div class="panel" style="padding:20px;">
+	<div class="pnl_formsarea">
+		<div class="alert alert-warning">
+			<p>
+				<tmpl_var name="list_desc_txt">
+			</p>
+		</div>
+		<div class="form-group">
+			<label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_import_txt'}</label>
+			<input name="file" id="file" size="30" type="file" class="fileUpload" />
+		</div>
+		<div class="form-group">
+			<label class="col-sm-3 control-label">{tmpl_var name='language_overwrite_txt'}</label>
+			<div class="col-sm-9"><input class="form-control" type="checkbox" id="overwrite" value="1" name="overwrite" /></div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-3 control-label">{tmpl_var name='ignore_version_txt'}</label>
+			<div class="col-sm-9"><input class="form-control" type="checkbox" id="ignore_version" value="1" name="ignore_version" /></div>
+		</div>
 
 
-            <div class="form-group">
-                <label for="lng_select" class="col-sm-3 control-label">{tmpl_var name='language_import_txt'}</label>
-                <input name="file" id="file" size="30" type="file" class="fileUpload" />
-            </div>
-            <div class="form-group">
-                <label class="col-sm-3 control-label">{tmpl_var name='language_overwrite_txt'}</label>
-                <div class="col-sm-9"><input class="form-control" type="checkbox" id="overwrite" value="1" name="overwrite"/></div>
-            </div>
-            <div class="form-group">
-                <label class="col-sm-3 control-label">{tmpl_var name='ignore_version_txt'}</label>
-                <div class="col-sm-9"><input class="form-control" type="checkbox" id="ignore_version" value="1" name="ignore_version"/></div>
-            </div>
-                
-                
-            <tmpl_if name="msg">
-                <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
-            </tmpl_if>
-            <tmpl_if name="error">
-                <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
-            </tmpl_if>
-                
-            <input type="hidden" name="id" value="{tmpl_var name='id'}">
-                
-            <div class="clear"><div class="right">
-                <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_import.php" data-form-upload="true">{tmpl_var name='btn_save_txt'}</button>
-                <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-            </div></div>
+		<tmpl_if name="msg">
+			<div id="OKMsg">
+				<p>
+					<tmpl_var name="msg">
+				</p>
+			</div>
+		</tmpl_if>
+		<tmpl_if name="error">
+			<div id="errorMsg">
+				<h3>
+					<tmpl_var name="error_txt">
+				</h3>
+				<ol>
+					<tmpl_var name="error">
+				</ol>
+			</div>
+		</tmpl_if>
+
+		<input type="hidden" name="id" value="{tmpl_var name='id'}">
+
+		<div class="clear">
+			<div class="right">
+				<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/language_import.php" data-form-upload="true">{tmpl_var name='btn_save_txt'}</button>
+				<button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/language_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+			</div>
+		</div>
+	</div>
+</div>
diff --git a/interface/web/admin/templates/remote_action_ispcupdate.htm b/interface/web/admin/templates/remote_action_ispcupdate.htm
index cbd2899bea9c1668dff1bbde4a60fef4205e2fd6..944ccb3ce14f3dfb98675aedca8e42d71dfbabf1 100644
--- a/interface/web/admin/templates/remote_action_ispcupdate.htm
+++ b/interface/web/admin/templates/remote_action_ispcupdate.htm
@@ -6,14 +6,18 @@
 -->
 
 <div class='page-header'>
-	<h1><tmpl_var name="ispconfig_update_title"></h1>
+	<h1>
+		<tmpl_var name="ispconfig_update_title">
+	</h1>
 </div>
-<p style="margin-top:50px; font-size:14px;"><tmpl_var name="ispconfig_update_text"></p>
-
-<div class="panel panel_language_add">
-  
-    <div class="pnl_formsarea">
-        <!--
+<div class="panel" style="padding:20px;">
+	<div class="pnl_formsarea">
+		<p style="font-size:14px;">
+			<tmpl_var name="ispconfig_update_text">
+		</p>
+	</div>
+</div>
+<!--
           <legend>{tmpl_var name='do_ispcupdate_caption'}</legend>
             <div class="form-group">
               <label for="server_select" class="col-sm-3 control-label">{tmpl_var name='select_server_txt'}</label>
@@ -21,17 +25,17 @@
                                               {tmpl_var name='server_option'}
                                       </select></div>
             </div>
-          
-      
+
+
               <tmpl_if name="msg">
               <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
         </tmpl_if>
-      
-      
+
+
                 <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_do_txt'}" data-submit-form="pageForm" data-form-action="admin/remote_action_ispcupdate.php">{tmpl_var name='btn_do_txt'}</button>
           </div></div>
         -->
-    </div>
-  
-</div>
\ No newline at end of file
+</div>
+
+</div>
diff --git a/interface/web/admin/templates/remote_action_osupdate.htm b/interface/web/admin/templates/remote_action_osupdate.htm
index 55629fc1e9adfd21c39dc384a85200e39f3e42b8..e32ae2c652e211d0270772af493206b6ddccc3a7 100644
--- a/interface/web/admin/templates/remote_action_osupdate.htm
+++ b/interface/web/admin/templates/remote_action_osupdate.htm
@@ -1,21 +1,34 @@
 <div class='page-header'>
-	<h1><tmpl_var name="do_osupdate_caption"></h1>
+	<h1>
+		<tmpl_var name="do_osupdate_caption">
+	</h1>
 </div>
-<p><tmpl_var name="do_osupdate_desc"></p>
+<div class="panel" style="padding:20px;">
+	<div class="pnl_formsarea">
+		<div class="alert alert-warning">
+			<p>
+				<tmpl_var name="do_osupdate_desc">
+			</p>
+		</div>
+		<div class="form-group">
+			<label for="server_select" class="col-sm-3 control-label">{tmpl_var name='select_server_txt'}</label>
+			<div class="col-sm-9"><select name="server_select" id="server" class="form-control" onchange="$('#OKMsg').hide(); ">
+					{tmpl_var name='server_option'}
+				</select></div>
+		</div>
 
+		<tmpl_if name="msg">
+			<div id="OKMsg">
+				<p>
+					<tmpl_var name="msg">
+				</p>
+			</div>
+		</tmpl_if>
 
-            <div class="form-group">
-                <label for="server_select" class="col-sm-3 control-label">{tmpl_var name='select_server_txt'}</label>
-                <div class="col-sm-9"><select name="server_select" id="server" class="form-control" onchange="$('#OKMsg').hide(); ">
-                    {tmpl_var name='server_option'}
-                </select></div>
-            </div>
-        
-            
-        <tmpl_if name="msg">
-            <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
-        </tmpl_if>
-            
-        <div class="clear"><div class="right">
-            <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_do_txt'}" data-submit-form="pageForm" data-form-action="admin/remote_action_osupdate.php">{tmpl_var name='btn_do_txt'}</button>
-        </div></div>
+		<div class="clear">
+			<div class="right">
+				<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_do_txt'}" data-submit-form="pageForm" data-form-action="admin/remote_action_osupdate.php">{tmpl_var name='btn_do_txt'}</button>
+			</div>
+		</div>
+	</div>
+</div>
diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm
index 356d2e1b252e6803a3dd94c6f32f9f3c51e912f0..ea8386c224608c07fbe199e295da2c944dc1dba1 100644
--- a/interface/web/admin/templates/system_config_misc_edit.htm
+++ b/interface/web/admin/templates/system_config_misc_edit.htm
@@ -144,13 +144,15 @@
   </div>
 </tmpl_if>
 <tmpl_if name="error">
-  <div id="errorMsg">
-    <h3>
-      <tmpl_var name="error_txt">
-    </h3>
-    <ol>
-      <tmpl_var name="error">
-    </ol>
+  <div class='alert alert-danger clear'>
+    <div class='alert-label'>
+      <strong><tmpl_var name="error_txt"></strong>
+      </div>
+    <div class='alert-content'>
+      <ul style="list-style-type:none">
+        <tmpl_var name="error">
+      </ul>
+    </div>
   </div>
 </tmpl_if>
 <input type="hidden" name="id" id="id" value="{tmpl_var name='id'}">
diff --git a/interface/web/client/templates/client_message.htm b/interface/web/client/templates/client_message.htm
index b546181fa71a5a77edee9ae936cafb80e4e31756..d934d5f6d2f82f3524433f64562238c98cbda219 100644
--- a/interface/web/client/templates/client_message.htm
+++ b/interface/web/client/templates/client_message.htm
@@ -5,7 +5,16 @@
                 <div id="OKMsg"><p><tmpl_var name="okmsg"></p></div>
             </tmpl_if>
             <tmpl_if name="error">
-                <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
+							<div class='alert alert-danger clear'>
+								<div class='alert-label'>
+									<strong><tmpl_var name="error_txt"></strong>
+									</div>
+								<div class='alert-content'>
+									<ul style="list-style-type:none">
+										<tmpl_var name="error">
+									</ul>
+								</div>
+							</div>
             </tmpl_if>
             <div class="form-group">
                 <label for="sender" class="col-sm-3 control-label">{tmpl_var name='sender_txt'}</label>
@@ -24,7 +33,7 @@
                 <div class="col-sm-9"><textarea class="form-control" name="message" id="message" rows="10">{tmpl_var name='message'}</textarea></div>
 				<div class="col-sm-3 col-text"></div><div class="col-sm-9 col-text">{tmpl_var name='variables_txt'}: {tmpl_var name="message_variables"} <br />{tmpl_var name='variables_description_txt'}</div>
             </div>
-        
+
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_send_txt'}" data-submit-form="pageForm" data-form-action="client/client_message.php">{tmpl_var name='btn_send_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="client/client_list.php">{tmpl_var name='btn_cancel_txt'}</button>
diff --git a/interface/web/dashboard/dashlets/databasequota.php b/interface/web/dashboard/dashlets/databasequota.php
index 8c5c360c23233306eec121c35445e7232a7762f1..ad2439e398ed2ddc7a4d3ff0d1ab91330f8c7d1d 100644
--- a/interface/web/dashboard/dashlets/databasequota.php
+++ b/interface/web/dashboard/dashlets/databasequota.php
@@ -11,7 +11,7 @@ class dashlet_databasequota {
                        return;
                }
 
-		$modules = $_SESSION['s']['user']['modules'];
+		$modules = explode(',', $_SESSION['s']['user']['modules']);
 		if (!in_array($modules, 'sites')) {
 			return '';
 		}
diff --git a/interface/web/dashboard/dashlets/quota.php b/interface/web/dashboard/dashlets/quota.php
index 8179e4ead5f9ebbd7308149dce80f43c9d5f0c0a..443517b0bc3ee6618451fdf9a8c44d2064a57e59 100644
--- a/interface/web/dashboard/dashlets/quota.php
+++ b/interface/web/dashboard/dashlets/quota.php
@@ -11,7 +11,7 @@ class dashlet_quota {
 				return;
 		}
 
-		$modules = $_SESSION['s']['user']['modules'];
+		$modules = explode(',', $_SESSION['s']['user']['modules']);
 		if (!in_array($modules, 'sites')) {
 			return '';
 		}
diff --git a/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng
index 92168811936d835f41d660899cfea011015efa1f..1e69b5777b620c0514fb58c067d15908f7843ce3 100644
--- a/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng
+++ b/interface/web/dashboard/lib/lang/de_dashlet_mailquota.lng
@@ -1,5 +1,5 @@
 <?php
-$wb['mailquota_txt'] = 'Mailbox-Speicherplatz';
+$wb['mailquota_txt'] = 'E-Mail-Speicherplatz';
 $wb['email_txt'] = 'E-Mail-Adresse';
 $wb['name_txt'] = 'Name';
 $wb['used_txt'] = 'Verwendet';
diff --git a/interface/web/dns/dns_a_edit.php b/interface/web/dns/dns_a_edit.php
index 595ebcc92c4c0bfad88970f31f1b9be830be81fd..ae5be448c5b6bbbb042cc839918be9b057a6dfeb 100644
--- a/interface/web/dns/dns_a_edit.php
+++ b/interface/web/dns/dns_a_edit.php
@@ -48,7 +48,7 @@ class page_action extends dns_page_action {
 	protected function checkDuplicate() {
 		global $app;
 		//* Check for duplicates where IP and hostname are the same
-		$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'A' AND name = ? AND zone = ? and data = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->dataRecord["data"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id);
+		$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'A' AND name = ? AND zone = ? and data = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'ALIAS' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->dataRecord["data"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id);
 		if($tmp['number'] > 0) return true;
 		return false;
 	}
diff --git a/interface/web/dns/dns_aaaa_edit.php b/interface/web/dns/dns_aaaa_edit.php
index 780fbcc80efca2386b2e1a9ca76776b4f592c284..07bddeb0504dfa55df17dca1a6a23a513d750f84 100644
--- a/interface/web/dns/dns_aaaa_edit.php
+++ b/interface/web/dns/dns_aaaa_edit.php
@@ -48,7 +48,7 @@ class page_action extends dns_page_action {
 	protected function checkDuplicate() {
 		global $app;
 		//* Check for duplicates where IP and hostname are the same
-		$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'AAAA' AND name = ? AND zone = ? and data = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->dataRecord["data"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id);
+		$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'AAAA' AND name = ? AND zone = ? and data = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'ALIAS' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->dataRecord["data"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id);
 		if($tmp['number'] > 0) return true;
 		return false;
 	}
diff --git a/interface/web/dns/dns_alias_edit.php b/interface/web/dns/dns_alias_edit.php
index 68f2743fe16dfc02dd7a7d5bd4a8aa0878bf074d..20bbc38d8646db029cc0ab6993ee89340eac85a8 100644
--- a/interface/web/dns/dns_alias_edit.php
+++ b/interface/web/dns/dns_alias_edit.php
@@ -44,7 +44,13 @@ require_once './dns_edit_base.php';
 
 // Loading classes
 class page_action extends dns_page_action {
-
+  protected function checkDuplicate() {
+		global $app;
+		//* Check for duplicates where IP and hostname are the same
+		$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'A' AND name = ? AND zone = ? and id != ?) OR (type = 'AAAA' AND name = ? AND zone = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'DNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'ALIAS' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id);
+		if($tmp['number'] > 0) return true;
+		return false;
+	}
 }
 
 $page = new page_action;
diff --git a/interface/web/dns/dns_cname_edit.php b/interface/web/dns/dns_cname_edit.php
index 4013b72ea804ace405b42f31f42df350517fd07f..38bb8140c47f06b5b144a57b980ead18768c63ed 100644
--- a/interface/web/dns/dns_cname_edit.php
+++ b/interface/web/dns/dns_cname_edit.php
@@ -48,7 +48,7 @@ class page_action extends dns_page_action {
 	protected function checkDuplicate() {
 		global $app;
 		//* Check for duplicates where IP and hostname are the same
-		$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'A' AND name = ? AND zone = ? and id != ?) OR (type = 'AAAA' AND name = ? AND zone = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'DNAME' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id);
+		$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'A' AND name = ? AND zone = ? and id != ?) OR (type = 'AAAA' AND name = ? AND zone = ? and id != ?) OR (type = 'CNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'DNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'ALIAS' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id);
 		if($tmp['number'] > 0) return true;
 		return false;
 	}
diff --git a/interface/web/dns/dns_dname_edit.php b/interface/web/dns/dns_dname_edit.php
index b4cd8ffaeafeb56aec1f2ca2b7350f3a6e11a53d..a1e1cb6c073cc9313e2c6d1b9952c5221a5ba486 100644
--- a/interface/web/dns/dns_dname_edit.php
+++ b/interface/web/dns/dns_dname_edit.php
@@ -48,7 +48,7 @@ class page_action extends dns_page_action {
 	protected function checkDuplicate() {
 		global $app;
 		//* Check for duplicates where IP and hostname are the same
-		$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'CNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'DNAME' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id);
+		$tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE (type = 'CNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'DNAME' AND name = ? AND zone = ? and id != ?) OR (type = 'ALIAS' AND name = ? AND zone = ? and id != ?)", $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id, $this->dataRecord["name"], $this->dataRecord["zone"], $this->id);
 		if($tmp['number'] > 0) return true;
 		return false;
 	}
diff --git a/interface/web/dns/lib/lang/ar_dns_a.lng b/interface/web/dns/lib/lang/ar_dns_a.lng
index 577bb47d5b7211129dedb2eea6e0072fd3843187..36e5b50eb3836c822c58565386d260e5b581476d 100644
--- a/interface/web/dns/lib/lang/ar_dns_a.lng
+++ b/interface/web/dns/lib/lang/ar_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ar_dns_aaaa.lng b/interface/web/dns/lib/lang/ar_dns_aaaa.lng
index da7eeb8a0f5f34a45e23a7b92b363cef03cc0f39..41b0d2202127712b17c8517b1f2a5a8f64e6bea9 100644
--- a/interface/web/dns/lib/lang/ar_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/ar_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN
 $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ar_dns_alias.lng b/interface/web/dns/lib/lang/ar_dns_alias.lng
index bd4be9f219e66a4e78a408cc6cc5bd06f06c28e7..bf56c86fbe61a4713599eefd0cc739b153c78389 100644
--- a/interface/web/dns/lib/lang/ar_dns_alias.lng
+++ b/interface/web/dns/lib/lang/ar_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ar_dns_cname.lng b/interface/web/dns/lib/lang/ar_dns_cname.lng
index 382397abf7194ea1dcc92ad7fa1162856e65e197..bf56c86fbe61a4713599eefd0cc739b153c78389 100644
--- a/interface/web/dns/lib/lang/ar_dns_cname.lng
+++ b/interface/web/dns/lib/lang/ar_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/bg_dns_a.lng b/interface/web/dns/lib/lang/bg_dns_a.lng
index fbf4ac377722367f1894bf9f1b8d0a372d7eaa47..a6fb74d118351aca801c88fe7a954fa2f0b2fd84 100644
--- a/interface/web/dns/lib/lang/bg_dns_a.lng
+++ b/interface/web/dns/lib/lang/bg_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Полето за хост име е празно.';
 $wb['name_error_regex'] = 'Избраното име на хост е в грешен формат.';
 $wb['data_error_empty'] = 'Полето за IP адреса е празно';
 $wb['ip_error_wrong'] = 'Формата на IP адреса е грешен';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Минималния TTL е 60 секунди.';
 ?>
diff --git a/interface/web/dns/lib/lang/bg_dns_aaaa.lng b/interface/web/dns/lib/lang/bg_dns_aaaa.lng
index 5858552d104bc35f4f84ff860dc08f384da7f259..2bf4d2c1de064a5eff65a10b4571bb89f2ad7e6e 100644
--- a/interface/web/dns/lib/lang/bg_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/bg_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Вие нямате право да добавяте за
 $wb['name_error_empty'] = 'Полето с имейла е празно.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 $wb['ttl_range_error'] = 'Минималния TTL е 60 секунди.';
 ?>
diff --git a/interface/web/dns/lib/lang/bg_dns_alias.lng b/interface/web/dns/lib/lang/bg_dns_alias.lng
index 33fb63ffab6643ddf00f6f2ba5ee69ed219937b2..7733eb75bf2b91243a3ace1c59632d20893c1d5a 100644
--- a/interface/web/dns/lib/lang/bg_dns_alias.lng
+++ b/interface/web/dns/lib/lang/bg_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Полето с имейла е празно.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Минималния TTL е 60 секунди.';
 ?>
diff --git a/interface/web/dns/lib/lang/bg_dns_cname.lng b/interface/web/dns/lib/lang/bg_dns_cname.lng
index 66f41ba34ce0aab831644bfec3c88f116cf10b20..c1b8d155e65a143a74704974c7606d8dd02624aa 100644
--- a/interface/web/dns/lib/lang/bg_dns_cname.lng
+++ b/interface/web/dns/lib/lang/bg_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Полето с имейла е празно.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Минималния TTL е 60 секунди.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_a.lng b/interface/web/dns/lib/lang/br_dns_a.lng
index deb66ec97a1ebcb9b0bb6466670d659a35169493..130480ee8f253fafa12e0adaabfbf9e3b147bb41 100644
--- a/interface/web/dns/lib/lang/br_dns_a.lng
+++ b/interface/web/dns/lib/lang/br_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'O nome do host está em branco.';
 $wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).';
 $wb['data_error_empty'] = 'Endereço IP está em branco.';
 $wb['ip_error_wrong'] = 'Endereço IP inválido.';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'O TTL mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_aaaa.lng b/interface/web/dns/lib/lang/br_dns_aaaa.lng
index b4274c7b51abe56bf7740c396af7ba3bf3dcead5..74f6ca957eb158e86798498a4ac976b23656deb8 100644
--- a/interface/web/dns/lib/lang/br_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/br_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns ne
 $wb['name_error_empty'] = 'O nome do host está em branco.';
 $wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).';
 $wb['data_error_empty'] = 'Endereço IPv6 está em branco.';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'O endereço IPv6 possui formato inválido.';
 $wb['ttl_range_error'] = 'O TTL mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_alias.lng b/interface/web/dns/lib/lang/br_dns_alias.lng
index 46821ee1ae5aeb548a3bc926b0d86d5d82245348..c9ce9498ca52bb5624211018963ed4d3fcf88720 100644
--- a/interface/web/dns/lib/lang/br_dns_alias.lng
+++ b/interface/web/dns/lib/lang/br_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'O nome do host está em branco.';
 $wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).';
 $wb['data_error_empty'] = 'O alvo do host está em branco.';
 $wb['data_error_regex'] = 'O formato do alvo do host é inválido.';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'O TTL mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/br_dns_cname.lng b/interface/web/dns/lib/lang/br_dns_cname.lng
index 4a8f98cb02a02737d423369c4a4ebfc0b4e44fd8..5f52aa14fb01486060a00fec675ae270b1644973 100644
--- a/interface/web/dns/lib/lang/br_dns_cname.lng
+++ b/interface/web/dns/lib/lang/br_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'O nome do host está em branco.';
 $wb['name_error_regex'] = 'O nome do host possui formato inválido (somente nomes canônicos são suportados).';
 $wb['data_error_empty'] = 'O alvo do host está em branco.';
 $wb['data_error_regex'] = 'O alvo do host possui formato inválido.';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'O TTL mínimo são 60 segundos.';
 ?>
diff --git a/interface/web/dns/lib/lang/ca_dns_a.lng b/interface/web/dns/lib/lang/ca_dns_a.lng
index f486bb6d49bc3f0c4cfe047cce5d561c498ccf6f..339efc73fe5eee8d40cbe454797b4cfba97eaf33 100644
--- a/interface/web/dns/lib/lang/ca_dns_a.lng
+++ b/interface/web/dns/lib/lang/ca_dns_a.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistreme
 $wb['name_error_empty'] = 'Le nom d\'hôte est vide.';
 $wb['name_error_regex'] = 'Le format du nom d\'hôte est invalide.';
 $wb['data_error_empty'] = 'L\'adresse IP est vide.';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/ca_dns_aaaa.lng b/interface/web/dns/lib/lang/ca_dns_aaaa.lng
index 0aed36e11962f86e2f6a90ac59dac2085793b07b..778ea7cb0e181a63c41892a9028db0027e8a6573 100644
--- a/interface/web/dns/lib/lang/ca_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/ca_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Vous n\'avez pas la permission d\'ajouter un enregistreme
 $wb['name_error_empty'] = 'Le nom d\'hôte est vide.';
 $wb['name_error_regex'] = 'Le format du nom d\'hôte est invalide.';
 $wb['data_error_empty'] = 'L\'adresse IP est vide.';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/ca_dns_alias.lng b/interface/web/dns/lib/lang/ca_dns_alias.lng
index 4071d430b9ac5a400ba1286fa49af15a4057b021..be2d96ff2352cfbc4987fd7450c6c26769ea4a66 100644
--- a/interface/web/dns/lib/lang/ca_dns_alias.lng
+++ b/interface/web/dns/lib/lang/ca_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Le nom d\'hôte est vide.';
 $wb['name_error_regex'] = 'Le format du nom d\'hôte est invalide.';
 $wb['data_error_empty'] = 'Le nom d\'hôte cible est vide.';
 $wb['data_error_regex'] = 'Le format du nom d\'hôte est invalide.';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ca_dns_cname.lng b/interface/web/dns/lib/lang/ca_dns_cname.lng
index 480f1ddd4da17fcf03ea94d820070e64d985b7df..3dedd525c781334959a997262962f8e193dbe74a 100644
--- a/interface/web/dns/lib/lang/ca_dns_cname.lng
+++ b/interface/web/dns/lib/lang/ca_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Le nom d\'hôte est vide.';
 $wb['name_error_regex'] = 'Le format du nom d\'hôte est invalide.';
 $wb['data_error_empty'] = 'Le nom d\'hôte cible est vide.';
 $wb['data_error_regex'] = 'Le format du nom d\'hôte cible invalide.';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/cz_dns_a.lng b/interface/web/dns/lib/lang/cz_dns_a.lng
index 1aa476275c9384c47e0a5a86ab4d325ddecc5c9c..47af668d8af0eb763e89b0387b6e67eefa3505c3 100644
--- a/interface/web/dns/lib/lang/cz_dns_a.lng
+++ b/interface/web/dns/lib/lang/cz_dns_a.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
 $wb['data_error_empty'] = 'IP adresa je prázdná';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['ip_error_wrong'] = 'IP - formát adresy neplatný';
 ?>
diff --git a/interface/web/dns/lib/lang/cz_dns_aaaa.lng b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
index 371d3f591b2560fd58a4285a5f322112e9046235..00f7d49745eddf68da0b726bec16f23720085da3 100644
--- a/interface/web/dns/lib/lang/cz_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/cz_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny.';
 $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
 $wb['data_error_empty'] = 'IP adresa je prázdná';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 $wb['ip_error_wrong'] = 'IP - formát adresy neplatný';
 ?>
diff --git a/interface/web/dns/lib/lang/cz_dns_alias.lng b/interface/web/dns/lib/lang/cz_dns_alias.lng
index 9c64d41797686affa958eb853636828bdb05daf3..7eaeba6c9526a1ce14f4dcec721be6e7c49a44e2 100644
--- a/interface/web/dns/lib/lang/cz_dns_alias.lng
+++ b/interface/web/dns/lib/lang/cz_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
 $wb['data_error_empty'] = 'Cílový název hostitele je prázdný';
 $wb['data_error_regex'] = 'Cílový název hostitele má chybný formát';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
diff --git a/interface/web/dns/lib/lang/cz_dns_cname.lng b/interface/web/dns/lib/lang/cz_dns_cname.lng
index 7003f707c4c48209b64bdec8f24a4a4f024b925d..7eaeba6c9526a1ce14f4dcec721be6e7c49a44e2 100644
--- a/interface/web/dns/lib/lang/cz_dns_cname.lng
+++ b/interface/web/dns/lib/lang/cz_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Název hostitele je prázdný.';
 $wb['name_error_regex'] = 'Název hostitele má chybný formát.';
 $wb['data_error_empty'] = 'Cílový název hostitele je prázdný';
 $wb['data_error_regex'] = 'Cílový název hostitele má chybný formát';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.';
 ?>
diff --git a/interface/web/dns/lib/lang/de_dns_a.lng b/interface/web/dns/lib/lang/de_dns_a.lng
index c60afbbc1fa2ab89bc1ae74c87f3cccf985d1a95..6a3a5fd8e6e8349e89a10c29ebb558c972104930 100644
--- a/interface/web/dns/lib/lang/de_dns_a.lng
+++ b/interface/web/dns/lib/lang/de_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Der Hostname ist leer.';
 $wb['name_error_regex'] = 'Der Hostname hat das falsche Format.';
 $wb['data_error_empty'] = 'IPv4 Adresse ist leer';
 $wb['ip_error_wrong'] = 'IPv4 Adressen Format ist ungültig';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/de_dns_aaaa.lng b/interface/web/dns/lib/lang/de_dns_aaaa.lng
index 0251a9dc2666583bc62c1afe006814590ce122d0..518820a8fce0021124b811bbfe322007957eaeb4 100644
--- a/interface/web/dns/lib/lang/de_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/de_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Sie haben nicht die Berechtigung, einen Eintrag zu dieser
 $wb['name_error_empty'] = 'Der Hostname ist leer.';
 $wb['name_error_regex'] = 'Der Hostname hat das falsche Format.';
 $wb['data_error_empty'] = 'IPv6 Adresse ist leer';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IPv6 Adressen Format ist ungültig';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/de_dns_alias.lng b/interface/web/dns/lib/lang/de_dns_alias.lng
index 60eec60b601cf81673e80a24a72804081c620be6..3fdac9d68d0ffb834306f9fafad8858d64d280a2 100644
--- a/interface/web/dns/lib/lang/de_dns_alias.lng
+++ b/interface/web/dns/lib/lang/de_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Der Hostname ist leer.';
 $wb['name_error_regex'] = 'Der Hostname hat ein falsches Format.';
 $wb['data_error_empty'] = 'Ziel Hostname ist leer';
 $wb['data_error_regex'] = 'Ziel Hostname Format ist ungültig';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/de_dns_cname.lng b/interface/web/dns/lib/lang/de_dns_cname.lng
index 6aed8fb825f193955df11998902fc490c18e482b..325c1ce3d168270b1e057d987060817b8e658c9f 100644
--- a/interface/web/dns/lib/lang/de_dns_cname.lng
+++ b/interface/web/dns/lib/lang/de_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Der Hostname ist leer.';
 $wb['name_error_regex'] = 'Der Hostname hat das falsche Format.';
 $wb['data_error_empty'] = 'Ziel Hostname ist leer';
 $wb['data_error_regex'] = 'Ziel Hostname Format ist ungültig';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_a.lng b/interface/web/dns/lib/lang/dk_dns_a.lng
index 6ce7aa50728a6afdd33a471d59bc8fdb4244b81a..f89aca476518b2e39cb070b31829671457c44f64 100644
--- a/interface/web/dns/lib/lang/dk_dns_a.lng
+++ b/interface/web/dns/lib/lang/dk_dns_a.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne
 $wb['name_error_empty'] = 'Værtsnavnet er tomt.';
 $wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
 $wb['data_error_empty'] = 'IP-Adressen er tom';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_aaaa.lng b/interface/web/dns/lib/lang/dk_dns_aaaa.lng
index c8d4dac13a02e6ed9ab30071507ce5b8abb9cc57..d6e00bc9d0cb36dc76b9a59e3c727387fbabac70 100644
--- a/interface/web/dns/lib/lang/dk_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/dk_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Du har ikke tilladelse til at tilføje en post til denne
 $wb['name_error_empty'] = 'Værtsnavnet er tomt.';
 $wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
 $wb['data_error_empty'] = 'IP-Adressen er tom';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_alias.lng b/interface/web/dns/lib/lang/dk_dns_alias.lng
index ca21de01eca2b985c7338731344606d786df5abb..a17fab0e2b87343571a54b8cc5ec754f624d8220 100644
--- a/interface/web/dns/lib/lang/dk_dns_alias.lng
+++ b/interface/web/dns/lib/lang/dk_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Værtsnavnet er tomt.';
 $wb['name_error_regex'] = 'Værtsnavnet har forkert format.';
 $wb['data_error_empty'] = 'Mål-værtsnavn er tom';
 $wb['data_error_regex'] = 'Mål-værtsnavn format er ugyldig';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
 ?>
diff --git a/interface/web/dns/lib/lang/dk_dns_cname.lng b/interface/web/dns/lib/lang/dk_dns_cname.lng
index 1815eab77ac1640054ccad30e66b9da6f5c224c8..e9c4e7658d0b4d72e395ed37e8aa3aac57ed8800 100644
--- a/interface/web/dns/lib/lang/dk_dns_cname.lng
+++ b/interface/web/dns/lib/lang/dk_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Værtsnavnet er tomt.';
 $wb['name_error_regex'] = 'Værtsnavnet har et forkert format.';
 $wb['data_error_empty'] = 'Mål-værtsnavn er tom';
 $wb['data_error_regex'] = 'Mål-værtsnavn format er ugyldigt';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL tid er 60 sekunder.';
 ?>
diff --git a/interface/web/dns/lib/lang/el_dns_a.lng b/interface/web/dns/lib/lang/el_dns_a.lng
index 96667ba7a2db608290023f16f28df8af60cf5e86..fbe429ee25fec29e30b01bc34123366b196e4a5e 100644
--- a/interface/web/dns/lib/lang/el_dns_a.lng
+++ b/interface/web/dns/lib/lang/el_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Το hostname δεν έχει οριστεί.';
 $wb['name_error_regex'] = 'Το hostname δεν έχει σωστή μορφοποίηση.';
 $wb['data_error_empty'] = 'Η διεύθυνση IP είναι κενή';
 $wb['ip_error_wrong'] = 'Διεύθυνση IP με μη έγκυρη μορφοποίηση';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/el_dns_aaaa.lng b/interface/web/dns/lib/lang/el_dns_aaaa.lng
index 5c66fee51dd90b5d47a862e921b0c54329a06b07..64830c58c0d1040f88e6e4807926163279cc2f48 100644
--- a/interface/web/dns/lib/lang/el_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/el_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Δεν έχετε δικαίωμα να προσθέσε
 $wb['name_error_empty'] = 'Το hostname δεν έχει οριστεί.';
 $wb['name_error_regex'] = 'Το hostname δεν έχει σωστή μορφοποίηση.';
 $wb['data_error_empty'] = 'Διεύθυνση IP κενή';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'Διεύθυνση IP με μη έγκυρη μορφοποίηση';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/el_dns_alias.lng b/interface/web/dns/lib/lang/el_dns_alias.lng
index 2e05e475da4aede8e81f17e0bf51dd7028c88725..f45fae103795f91279e7fff017e2021e718a1dc3 100644
--- a/interface/web/dns/lib/lang/el_dns_alias.lng
+++ b/interface/web/dns/lib/lang/el_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Το hostname δεν έχει οριστεί';
 $wb['name_error_regex'] = 'Το hostname έχει λάθος μορφοποίηση';
 $wb['data_error_empty'] = 'Το hostname Προορισμός δεν έχει οριστεί';
 $wb['data_error_regex'] = 'Το hostname Προορισμός έχει λάθος μορφοποίηση';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/el_dns_cname.lng b/interface/web/dns/lib/lang/el_dns_cname.lng
index ba6404887a7030aa7bebbbdcf504c4ed52240879..77d74b43362d7ce4634a86f65463139f6d1dc62d 100644
--- a/interface/web/dns/lib/lang/el_dns_cname.lng
+++ b/interface/web/dns/lib/lang/el_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Το hostname δεν έχει οριστεί.';
 $wb['name_error_regex'] = 'Το hostname δεν έχει σωστή μορφοποίηση.';
 $wb['data_error_empty'] = 'Το hostname Προορισμός δεν έχει οριστεί';
 $wb['data_error_regex'] = 'Hostname Προορισμός με μη έγκυρη μορφοποίηση';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/en_dns_a.lng b/interface/web/dns/lib/lang/en_dns_a.lng
index 577bb47d5b7211129dedb2eea6e0072fd3843187..36e5b50eb3836c822c58565386d260e5b581476d 100644
--- a/interface/web/dns/lib/lang/en_dns_a.lng
+++ b/interface/web/dns/lib/lang/en_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/en_dns_aaaa.lng b/interface/web/dns/lib/lang/en_dns_aaaa.lng
index da7eeb8a0f5f34a45e23a7b92b363cef03cc0f39..41b0d2202127712b17c8517b1f2a5a8f64e6bea9 100644
--- a/interface/web/dns/lib/lang/en_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/en_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN
 $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/en_dns_alias.lng b/interface/web/dns/lib/lang/en_dns_alias.lng
index 4a0f13b33f8b4c3e397bbf8f1c5ce98a0fe9b966..64a5082d6435e5fdb2b1f1bc53834d74144ba9a6 100644
--- a/interface/web/dns/lib/lang/en_dns_alias.lng
+++ b/interface/web/dns/lib/lang/en_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
\ No newline at end of file
diff --git a/interface/web/dns/lib/lang/en_dns_cname.lng b/interface/web/dns/lib/lang/en_dns_cname.lng
index 382397abf7194ea1dcc92ad7fa1162856e65e197..bf56c86fbe61a4713599eefd0cc739b153c78389 100644
--- a/interface/web/dns/lib/lang/en_dns_cname.lng
+++ b/interface/web/dns/lib/lang/en_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/es_dns_a.lng b/interface/web/dns/lib/lang/es_dns_a.lng
index 6d3c01ebb4816657d08bd61ee4ad01dd934710f5..d2238f0d53250b77652d0d36ec91e86829d01bfe 100644
--- a/interface/web/dns/lib/lang/es_dns_a.lng
+++ b/interface/web/dns/lib/lang/es_dns_a.lng
@@ -1,6 +1,6 @@
 <?php
 $wb['active_txt'] = 'Habilitado';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['data_error_empty'] = 'Dirección IP vacía';
 $wb['data_txt'] = 'Dirección IP';
 $wb['ip_error_wrong'] = 'Formato inválido de dirección IP';
diff --git a/interface/web/dns/lib/lang/es_dns_aaaa.lng b/interface/web/dns/lib/lang/es_dns_aaaa.lng
index 85ff1ba5a74c87800ef139e2fe1d06ab1b37b150..613c02dec754e2026772cdac4e5dbdeded4bb361 100644
--- a/interface/web/dns/lib/lang/es_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/es_dns_aaaa.lng
@@ -1,7 +1,7 @@
 <?php
 $wb['active_txt'] = 'Habilitado';
 $wb['data_error_empty'] = 'Dirección IP vacía';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['data_txt'] = 'Dirección IPv6';
 $wb['ip_error_wrong'] = 'La dirección IP tiene un formato incorrecto';
 $wb['limit_dns_record_txt'] = 'Ha alcanzado el número máx. de registros DNS permitidos para su cuenta.';
diff --git a/interface/web/dns/lib/lang/es_dns_alias.lng b/interface/web/dns/lib/lang/es_dns_alias.lng
index df558bd14b9fa2e9b2ee50c19015cbbae2920af7..f8cf3900dda00aeb50e722898d3689baf4515c58 100644
--- a/interface/web/dns/lib/lang/es_dns_alias.lng
+++ b/interface/web/dns/lib/lang/es_dns_alias.lng
@@ -9,6 +9,7 @@ $wb['name_error_regex'] = 'El nombre del host tiene un formato incorrecto.';
 $wb['name_txt'] = 'Nombre del host';
 $wb['no_zone_perm'] = 'Usted no tiene permisos para agregar un registro a esta zona DNS.';
 $wb['server_id_txt'] = 'Servidor';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'El tiempo mín. de TTL es 60 segundos.';
 $wb['ttl_txt'] = 'TTL';
 $wb['type_txt'] = 'tipo';
diff --git a/interface/web/dns/lib/lang/es_dns_cname.lng b/interface/web/dns/lib/lang/es_dns_cname.lng
index ffc748f106c96346062fe9748823bc9fe2517ce4..d21713b625c7118933c27fe3cfb5e4c5280ee254 100644
--- a/interface/web/dns/lib/lang/es_dns_cname.lng
+++ b/interface/web/dns/lib/lang/es_dns_cname.lng
@@ -1,6 +1,6 @@
 <?php
 $wb['active_txt'] = 'Habilitado';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['data_error_empty'] = 'El nombre del host de destino está vacío.';
 $wb['data_error_regex'] = 'El nombre del host de destino tiene un formato incorrecto.';
 $wb['data_txt'] = 'Nombre del host de destino';
diff --git a/interface/web/dns/lib/lang/fi_dns_a.lng b/interface/web/dns/lib/lang/fi_dns_a.lng
index 701b5281afa45ca7e206ff30c910aef1a5bcf870..4a5cec203828622f8140b67362425597d1b70565 100644
--- a/interface/web/dns/lib/lang/fi_dns_a.lng
+++ b/interface/web/dns/lib/lang/fi_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Verkkotunnus on tyhjä.';
 $wb['name_error_regex'] = 'Verkkotunnus on vääränlainen.';
 $wb['data_error_empty'] = 'IP-osoite tyhjä';
 $wb['ip_error_wrong'] = 'IP-osoite on vääränlainen';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/fi_dns_aaaa.lng b/interface/web/dns/lib/lang/fi_dns_aaaa.lng
index 8c0c607141fc76829948021789addea1f41c7d42..06a8a46b05c4b76e17eb1541e0711f651471dca3 100644
--- a/interface/web/dns/lib/lang/fi_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/fi_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Käyttäjätunnuksella ei ole oikeuksia lisätä tietueit
 $wb['name_error_empty'] = 'Verkkotunnus on tyhjä.';
 $wb['name_error_regex'] = 'Verkkotunnus on väärän muotoinen.';
 $wb['data_error_empty'] = 'Tekstikenttä on tyhjä';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'Tekstikenttä on vääränlainen';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/fi_dns_alias.lng b/interface/web/dns/lib/lang/fi_dns_alias.lng
index 45078dc1f2c8c1837b48540b72360214d4461c37..fc3d922338229e62f3a631a00367b7c3cf5e87eb 100644
--- a/interface/web/dns/lib/lang/fi_dns_alias.lng
+++ b/interface/web/dns/lib/lang/fi_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Aliasverkkotunnus on tyhjä.';
 $wb['name_error_regex'] = 'Aliasverkkotunnus on vääränlainen.';
 $wb['data_error_empty'] = 'Pääverkkotunnus on tyhjä';
 $wb['data_error_regex'] = 'Pääverkkotunnus on vääränlainen';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/fi_dns_cname.lng b/interface/web/dns/lib/lang/fi_dns_cname.lng
index d7483389d436a4dd498e1639449db04184cadc74..5cdf4d5c039aadf9b16906f1ac6ae96f4f230c21 100644
--- a/interface/web/dns/lib/lang/fi_dns_cname.lng
+++ b/interface/web/dns/lib/lang/fi_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Verkkotunnus on tyhjä.';
 $wb['name_error_regex'] = 'Verkkotunnus on vääränlainen.';
 $wb['data_error_empty'] = 'Kohteen verkkotunnus on tyhjä';
 $wb['data_error_regex'] = 'Kohteen verkkotunnus on vääränlainen';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/fr_dns_a.lng b/interface/web/dns/lib/lang/fr_dns_a.lng
index 9e9625ba1c21dd01f9baa43779b523daa2055bfb..395bcd7d627fc45a55b1b76127bdd4dab388c626 100644
--- a/interface/web/dns/lib/lang/fr_dns_a.lng
+++ b/interface/web/dns/lib/lang/fr_dns_a.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Vous n’avez pas la permission d’ajouter un enregistre
 $wb['name_error_empty'] = 'Le nom d’hôte est vide.';
 $wb['name_error_regex'] = 'Le format du nom d’hôte est invalide.';
 $wb['data_error_empty'] = 'L’adresse IP est vide.';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/fr_dns_aaaa.lng b/interface/web/dns/lib/lang/fr_dns_aaaa.lng
index 9f925c32919a8776ba919624ba1623fcd222037a..d5d14386e39a913742d277ae9a52a156aee54a07 100644
--- a/interface/web/dns/lib/lang/fr_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/fr_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Vous n’avez pas la permission d’ajouter un enregistre
 $wb['name_error_empty'] = 'Le nom d’hôte est vide.';
 $wb['name_error_regex'] = 'Le format du nom d’hôte est invalide.';
 $wb['data_error_empty'] = 'L’adresse IP est vide.';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/fr_dns_alias.lng b/interface/web/dns/lib/lang/fr_dns_alias.lng
index 4684ce36ff7c438977b3b4abb49db2c293334c85..8838024a0234e90c926b9b77bd0c5b9d0c3e2dc5 100644
--- a/interface/web/dns/lib/lang/fr_dns_alias.lng
+++ b/interface/web/dns/lib/lang/fr_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Le nom d’hôte est vide.';
 $wb['name_error_regex'] = 'Le format du nom d’hôte est invalide.';
 $wb['data_error_empty'] = 'Le nom d’hôte cible est vide.';
 $wb['data_error_regex'] = 'Le format du nom d’hôte est invalide.';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/fr_dns_cname.lng b/interface/web/dns/lib/lang/fr_dns_cname.lng
index 47779eeffeb6ea4b4b846edd8d40ee1df84f3a5f..43dbf4af0ea1984e14ad47012b2c6d0dc6446f66 100644
--- a/interface/web/dns/lib/lang/fr_dns_cname.lng
+++ b/interface/web/dns/lib/lang/fr_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Le nom d’hôte est vide.';
 $wb['name_error_regex'] = 'Le format du nom d’hôte est invalide.';
 $wb['data_error_empty'] = 'Le nom d’hôte cible est vide.';
 $wb['data_error_regex'] = 'Le format du nom d’hôte cible invalide.';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/hr_dns_a.lng b/interface/web/dns/lib/lang/hr_dns_a.lng
index bcc49eb52b3bee4deaff3b020f8a4844e67ae927..1a9a2fcd980de4e84408f048d8dfde68a51ff81b 100644
--- a/interface/web/dns/lib/lang/hr_dns_a.lng
+++ b/interface/web/dns/lib/lang/hr_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.';
 $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.';
 $wb['data_error_empty'] = 'Polje IP adresa je prazno';
 $wb['ip_error_wrong'] = 'Neispravan format A zapisa';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.';
 ?>
diff --git a/interface/web/dns/lib/lang/hr_dns_aaaa.lng b/interface/web/dns/lib/lang/hr_dns_aaaa.lng
index 2be6042aa92f98f0fdb3d3287693190591fe4242..5f388a020686e8a234e3b2bb61bd9f64c355a439 100644
--- a/interface/web/dns/lib/lang/hr_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/hr_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Nemate dozvolu za dodavanja zapisa ovoj domeni.';
 $wb['name_error_empty'] = 'Naziv hosta nije upisan.';
 $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.';
 $wb['data_error_empty'] = 'Polje IPv6 adresa je prazno';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'Neispravan format IPv6 adrese';
 $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.';
 ?>
diff --git a/interface/web/dns/lib/lang/hr_dns_alias.lng b/interface/web/dns/lib/lang/hr_dns_alias.lng
index 90bdb35d66487ee30ac06562e14be53b7fc0d30d..e46ba9ac4394a3e3d66da62d626e6d9518fa7239 100644
--- a/interface/web/dns/lib/lang/hr_dns_alias.lng
+++ b/interface/web/dns/lib/lang/hr_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.';
 $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.';
 $wb['data_error_empty'] = 'Polje odredišni host je prazno';
 $wb['data_error_regex'] = 'Neispravan format odredišnog hosta';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.';
 ?>
diff --git a/interface/web/dns/lib/lang/hr_dns_cname.lng b/interface/web/dns/lib/lang/hr_dns_cname.lng
index ce334e750e07d4fea3b80f9a5ec5dbe56f12dc58..cc4b32fe222082ed510470d49055e28f54b65616 100644
--- a/interface/web/dns/lib/lang/hr_dns_cname.lng
+++ b/interface/web/dns/lib/lang/hr_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Naziv hosta nije upisan.';
 $wb['name_error_regex'] = 'Naziv hosta je u pogrešnom formatu.';
 $wb['data_error_empty'] = 'Polje odredišni host je prazno';
 $wb['data_error_regex'] = 'Neispravan format odredišnog host zapisa';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Minimalno TTL vrijeme je 60 sekundi.';
 ?>
diff --git a/interface/web/dns/lib/lang/hu_dns_a.lng b/interface/web/dns/lib/lang/hu_dns_a.lng
index f17ccaa11d2fa46cbbce0d56eb8fe388b6850089..678f6a4c58f51cdfaa5e252267773e6da65e31b1 100644
--- a/interface/web/dns/lib/lang/hu_dns_a.lng
+++ b/interface/web/dns/lib/lang/hu_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/hu_dns_aaaa.lng b/interface/web/dns/lib/lang/hu_dns_aaaa.lng
index 02643fed884368f44a252c7f0ee12cf5f28e740b..180d3a11169eabac56b061079ff1e01a8584617f 100644
--- a/interface/web/dns/lib/lang/hu_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/hu_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN
 $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/hu_dns_alias.lng b/interface/web/dns/lib/lang/hu_dns_alias.lng
index dbb957c9be6fec573b99673c2591177cf6b75201..12da9fe221eea2fd9a0e1e3f530fcac529271765 100644
--- a/interface/web/dns/lib/lang/hu_dns_alias.lng
+++ b/interface/web/dns/lib/lang/hu_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/hu_dns_cname.lng b/interface/web/dns/lib/lang/hu_dns_cname.lng
index 38a64157742553b6ceb575bcd1816e82e8707218..12da9fe221eea2fd9a0e1e3f530fcac529271765 100644
--- a/interface/web/dns/lib/lang/hu_dns_cname.lng
+++ b/interface/web/dns/lib/lang/hu_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/id_dns_a.lng b/interface/web/dns/lib/lang/id_dns_a.lng
index 20d5e9f3557a3eee330181de61761d1de0b960f3..3c5715e3dc1bcf4237d9d542fa291bb6bb74e461 100644
--- a/interface/web/dns/lib/lang/id_dns_a.lng
+++ b/interface/web/dns/lib/lang/id_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nama Host kosong.';
 $wb['name_error_regex'] = 'Format Nama Host salah.';
 $wb['data_error_empty'] = 'Alamat IP kosong';
 $wb['ip_error_wrong'] = 'Format Alamat IP tidak valid';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/id_dns_aaaa.lng b/interface/web/dns/lib/lang/id_dns_aaaa.lng
index f9b3395995060068513c469f6e78b5f965be3ce8..75ade955302f0cda756f8e9fd3b50b20d3348397 100644
--- a/interface/web/dns/lib/lang/id_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/id_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Anda tidak memiliki hak untuk menambah record ke zona DNS
 $wb['name_error_empty'] = 'Nama Host kosong.';
 $wb['name_error_regex'] = 'Format Nama Host salah.';
 $wb['data_error_empty'] = 'Alamat IP kosong';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'Format Alamat IP tidak valid';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/id_dns_alias.lng b/interface/web/dns/lib/lang/id_dns_alias.lng
index 497fcba7ddd3f3fea983b04b312abfd5adefafd2..223b3954761ac0fe666c584e820fe4fcc03f3f01 100644
--- a/interface/web/dns/lib/lang/id_dns_alias.lng
+++ b/interface/web/dns/lib/lang/id_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Nama Host kosong.';
 $wb['name_error_regex'] = 'Format Nama Host salah.';
 $wb['data_error_empty'] = 'Nama Host Target kosong';
 $wb['data_error_regex'] = 'Format Nama Host Target tidak valid';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/id_dns_cname.lng b/interface/web/dns/lib/lang/id_dns_cname.lng
index 94134153949c048b21dd0b478545937e47d89574..223b3954761ac0fe666c584e820fe4fcc03f3f01 100644
--- a/interface/web/dns/lib/lang/id_dns_cname.lng
+++ b/interface/web/dns/lib/lang/id_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nama Host kosong.';
 $wb['name_error_regex'] = 'Format Nama Host salah.';
 $wb['data_error_empty'] = 'Nama Host Target kosong';
 $wb['data_error_regex'] = 'Format Nama Host Target tidak valid';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/it_dns_a.lng b/interface/web/dns/lib/lang/it_dns_a.lng
index eec6ad5b07b3eda79f386bf1fe5fca4ba8be76e3..f45709437ec28c31334a14f652552523cc1b6dc7 100644
--- a/interface/web/dns/lib/lang/it_dns_a.lng
+++ b/interface/web/dns/lib/lang/it_dns_a.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN
 $wb['name_error_empty'] = 'The hostname  vuoto.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/it_dns_aaaa.lng b/interface/web/dns/lib/lang/it_dns_aaaa.lng
index fb1a2a58a677a3fab007cf87743de72c4f186b0e..a54f87a5fa5f711c79f28d489def989a2de4e070 100644
--- a/interface/web/dns/lib/lang/it_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/it_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Non hai il permesso di aggiungere record a questa zona DN
 $wb['name_error_empty'] = 'Nome Host vuoto.';
 $wb['name_error_regex'] = 'Formato errato per Nome Host.';
 $wb['data_error_empty'] = 'Indirizzo Ip vuoto';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'TTL time minimo 60 secondi.';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 ?>
diff --git a/interface/web/dns/lib/lang/it_dns_alias.lng b/interface/web/dns/lib/lang/it_dns_alias.lng
index fef96c9880ded1f37a756313fe5ad3b4db10c635..e2eade0f8a2d93c9ccf844ab013aab6672a5e372 100644
--- a/interface/web/dns/lib/lang/it_dns_alias.lng
+++ b/interface/web/dns/lib/lang/it_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'The hostname  vuoto.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/it_dns_cname.lng b/interface/web/dns/lib/lang/it_dns_cname.lng
index 6d7d135a018e70ed94e673b8f984c77f9c22ba10..ced97b351ae511ecfa512c77eb593f816d8ec801 100644
--- a/interface/web/dns/lib/lang/it_dns_cname.lng
+++ b/interface/web/dns/lib/lang/it_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nome Host vuoto.';
 $wb['name_error_regex'] = 'Formato errato per Nome Host.';
 $wb['data_error_empty'] = 'Target nome host vuoto';
 $wb['data_error_regex'] = 'Target nome host formato errato';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'TTL time minimo 60 secondi.';
 ?>
diff --git a/interface/web/dns/lib/lang/ja_dns_a.lng b/interface/web/dns/lib/lang/ja_dns_a.lng
index a64a87fc3f882eb6ef56646dcc99b2efa3da8ee6..45d336b9c488936131762c204867399e1f5660f6 100644
--- a/interface/web/dns/lib/lang/ja_dns_a.lng
+++ b/interface/web/dns/lib/lang/ja_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'ホスト名を入力してください。';
 $wb['name_error_regex'] = 'ホスト名の形式が不正です。';
 $wb['data_error_empty'] = 'IPアドレスを入力してください。';
 $wb['ip_error_wrong'] = 'IPアドレスの形式が不正です。';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ja_dns_aaaa.lng b/interface/web/dns/lib/lang/ja_dns_aaaa.lng
index 233cfd71edb65355e798062bd6fb68f2194f7d70..a851d2862e8ed5cd798a90689160e916153d9d3c 100644
--- a/interface/web/dns/lib/lang/ja_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/ja_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'このDNSゾーンにレコードを追加する権限が
 $wb['name_error_empty'] = 'ホスト名を入力してください。';
 $wb['name_error_regex'] = 'ホスト名の形式が不正です。';
 $wb['data_error_empty'] = 'IPアドレスを入力してください。';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IPアドレスの形式が不正です。';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ja_dns_alias.lng b/interface/web/dns/lib/lang/ja_dns_alias.lng
index 5fddc956ef384be001330368c2406bf47ef328cf..52ed4bb12ac3d88b4c680460f74af4ae00181842 100644
--- a/interface/web/dns/lib/lang/ja_dns_alias.lng
+++ b/interface/web/dns/lib/lang/ja_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'ホスト名を入力してください。';
 $wb['name_error_regex'] = 'ホスト名の形式が不正です。';
 $wb['data_error_empty'] = 'ターゲットのホスト名を入力してください。';
 $wb['data_error_regex'] = 'ターゲットのホスト名の形式が不正です。';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ja_dns_cname.lng b/interface/web/dns/lib/lang/ja_dns_cname.lng
index af805c98239a25d864d4cec884f8eb1716ebc7c5..52ed4bb12ac3d88b4c680460f74af4ae00181842 100644
--- a/interface/web/dns/lib/lang/ja_dns_cname.lng
+++ b/interface/web/dns/lib/lang/ja_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'ホスト名を入力してください。';
 $wb['name_error_regex'] = 'ホスト名の形式が不正です。';
 $wb['data_error_empty'] = 'ターゲットのホスト名を入力してください。';
 $wb['data_error_regex'] = 'ターゲットのホスト名の形式が不正です。';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/nl_dns_a.lng b/interface/web/dns/lib/lang/nl_dns_a.lng
index 38e30234c72cc3c9a425cf65eea578fbd7e971a4..a4c6f0cf7e7f687755f99c61ad184aefec9cd5f7 100644
--- a/interface/web/dns/lib/lang/nl_dns_a.lng
+++ b/interface/web/dns/lib/lang/nl_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'De hostnaam is niet ingvuld.';
 $wb['name_error_regex'] = 'De hostnaam heeft een onjuist formaat.';
 $wb['data_error_empty'] = 'IP-adres is niet ingvuld';
 $wb['ip_error_wrong'] = 'IP-adres formaat ongeldig';
-$wb['data_error_duplicate'] = 'Duplicaat A of CNAME record';
+$wb['data_error_duplicate'] = 'Duplicaat A, ALIAS of CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/nl_dns_aaaa.lng b/interface/web/dns/lib/lang/nl_dns_aaaa.lng
index 218799bb4a30a8ccfedb7d46f5769bab9027fb4c..2521ff5b17b115e8d2bc2ca665db884ca61ffda9 100644
--- a/interface/web/dns/lib/lang/nl_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/nl_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'U heeft geen toestemming om een record toe te voegen aan
 $wb['name_error_empty'] = 'De hostnaam is niet ingvuld';
 $wb['name_error_regex'] = 'De hostnaam heeft een onjuist formaat.';
 $wb['data_error_empty'] = 'IP-adres is niet ingevuld';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IP-adres formaat ongeldig';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/nl_dns_alias.lng b/interface/web/dns/lib/lang/nl_dns_alias.lng
index 5b8873823d956356237164d1b5ca807f33a6a0d8..f3b2680a89f6c8ceaf56827da3502ff954307a78 100644
--- a/interface/web/dns/lib/lang/nl_dns_alias.lng
+++ b/interface/web/dns/lib/lang/nl_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'De hostname is niet ingvuld.';
 $wb['name_error_regex'] = 'De hostnaam heeft een onjuist formaat.';
 $wb['data_error_empty'] = 'Doel hostnaam is niet ingvuld';
 $wb['data_error_regex'] = 'Doel hostnaam formaat ongeldig';
+$wb['data_error_duplicate'] = 'Duplicaat A, AAAA, ALIAS, CNAME, of DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/nl_dns_cname.lng b/interface/web/dns/lib/lang/nl_dns_cname.lng
index 778a05a5fa5f9bbea96929b1843febd41bc34c0e..91dc0380e0c8a839c689a4f09e153044af82f1a9 100644
--- a/interface/web/dns/lib/lang/nl_dns_cname.lng
+++ b/interface/web/dns/lib/lang/nl_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'De hostnaam is niet ingvuld.';
 $wb['name_error_regex'] = 'De hostname heeft een onjuist formaat.';
 $wb['data_error_empty'] = 'Doel hostnaam is niet ingvuld';
 $wb['data_error_regex'] = 'Doel hostnaam formaat ongeldig';
-$wb['data_error_duplicate'] = 'Duplicaat A, AAAA, CNAME, of DNAME record';
+$wb['data_error_duplicate'] = 'Duplicaat A, AAAA, ALIAS, CNAME, of DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/pl_dns_a.lng b/interface/web/dns/lib/lang/pl_dns_a.lng
index a200ae5cce5057b292f77f7472a07218d64cd33c..8af428f235870856cdf80ae8228cf88522c60b51 100644
--- a/interface/web/dns/lib/lang/pl_dns_a.lng
+++ b/interface/web/dns/lib/lang/pl_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nazwa serwera jest pusta.';
 $wb['name_error_regex'] = 'Nazwa serwera ma niepoprawny format.';
 $wb['data_error_empty'] = 'Adres IP jest pusty.';
 $wb['ip_error_wrong'] = 'Adres IP ma niepoprawny format.';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/pl_dns_aaaa.lng b/interface/web/dns/lib/lang/pl_dns_aaaa.lng
index 7de382fcbd99cd4892afb253d8dd444b94c258ce..1006ef77b0200bdf080bbba8242b8cbcee7e3d15 100644
--- a/interface/web/dns/lib/lang/pl_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/pl_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Nie masz uprawnień, aby dodać nowy wpis w tej strefie D
 $wb['name_error_empty'] = 'Nazwa serwera jest pusta.';
 $wb['name_error_regex'] = 'Nazwa serwera ma niepoprawny format.';
 $wb['data_error_empty'] = 'Adres IP jest pusty.';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'Adres IP ma niepoprawny format.';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/pl_dns_alias.lng b/interface/web/dns/lib/lang/pl_dns_alias.lng
index abe5c15d121478564656a6df2a4284ef81781f86..05c83945d0284107d3fcd37d325e9a9631ce58f8 100644
--- a/interface/web/dns/lib/lang/pl_dns_alias.lng
+++ b/interface/web/dns/lib/lang/pl_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Nazwa serwera jest pusta.';
 $wb['name_error_regex'] = 'Nazwa serwera ma zły format.';
 $wb['data_error_empty'] = 'Docelowa nazwa serwera jest pusta.';
 $wb['data_error_regex'] = 'Docelowa nazwa serwera ma niepoprawny format.';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/pl_dns_cname.lng b/interface/web/dns/lib/lang/pl_dns_cname.lng
index d4fb5ab8c8b7bc71a85ffacbd0c425655024630d..89ed04f8f1aa4ad4b11e3d62c6a756b633db5e55 100644
--- a/interface/web/dns/lib/lang/pl_dns_cname.lng
+++ b/interface/web/dns/lib/lang/pl_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Nazwa serwera jest pusta.';
 $wb['name_error_regex'] = 'Nazwa serwera ma niepoprawny format.';
 $wb['data_error_empty'] = 'Docelowa nazwa serwera jest pusta.';
 $wb['data_error_regex'] = 'Docelowa nazwa serwera ma niepoprawny format.';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/pt_dns_a.lng b/interface/web/dns/lib/lang/pt_dns_a.lng
index 336c4f477e97c7d983ad9e68ad0fa8835218c17b..7216ef9316ea1f8c47f5931c34ddfa2df26c65d2 100644
--- a/interface/web/dns/lib/lang/pt_dns_a.lng
+++ b/interface/web/dns/lib/lang/pt_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname em branco.';
 $wb['name_error_regex'] = 'Hostname tem um formato inválido.';
 $wb['data_error_empty'] = 'Endereço-IP em branco';
 $wb['ip_error_wrong'] = 'Endereço-IP formato inválido';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/pt_dns_aaaa.lng b/interface/web/dns/lib/lang/pt_dns_aaaa.lng
index 045a818731114dd5e9434690520c4e0c854c9e48..51bb7aa5f1fe990810908c8bd0c22fd37745ee22 100644
--- a/interface/web/dns/lib/lang/pt_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/pt_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Não tem permissão para adicionar registos a está zona
 $wb['name_error_empty'] = 'O Hostname está em branco.';
 $wb['name_error_regex'] = 'O Hostname está com formato inválido.';
 $wb['data_error_empty'] = 'Endereço-IP em branco';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'Endereço-IP com formato inválido';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/pt_dns_alias.lng b/interface/web/dns/lib/lang/pt_dns_alias.lng
index 85e0268f9dd8a2e7bc4cbf6b2038b064252939c1..94073bf9ba26a21bc50687f803a59090d16341bd 100644
--- a/interface/web/dns/lib/lang/pt_dns_alias.lng
+++ b/interface/web/dns/lib/lang/pt_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Hostname está em branco.';
 $wb['name_error_regex'] = 'O hostname está em um formato inválido.';
 $wb['data_error_empty'] = 'Hostname de destino está em branco';
 $wb['data_error_regex'] = 'O hostname de destino está em um formato inválido.';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/pt_dns_cname.lng b/interface/web/dns/lib/lang/pt_dns_cname.lng
index 124b9e30003433ef3f5dda93560c21849c05e0c6..01cd577fc556b768a57196c6e93501eb581963a7 100644
--- a/interface/web/dns/lib/lang/pt_dns_cname.lng
+++ b/interface/web/dns/lib/lang/pt_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname está em branco.';
 $wb['name_error_regex'] = 'O hostname está em um formato inválido.';
 $wb['data_error_empty'] = 'Hostname de destino está em branco';
 $wb['data_error_regex'] = 'O hostname de destino está em um formato inválido.';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ro_dns_a.lng b/interface/web/dns/lib/lang/ro_dns_a.lng
index 26f8a42f058457d5988bf1d1dbcbe30d7a81137f..db5d2937a41174521fc772e1b60de83d7c6b9dc6 100644
--- a/interface/web/dns/lib/lang/ro_dns_a.lng
+++ b/interface/web/dns/lib/lang/ro_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname necompletat';
 $wb['name_error_regex'] = 'Hostname format gresit';
 $wb['data_error_empty'] = 'IP-Adresa vid';
 $wb['ip_error_wrong'] = 'IP-Adresa format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ro_dns_aaaa.lng b/interface/web/dns/lib/lang/ro_dns_aaaa.lng
index da7eeb8a0f5f34a45e23a7b92b363cef03cc0f39..41b0d2202127712b17c8517b1f2a5a8f64e6bea9 100644
--- a/interface/web/dns/lib/lang/ro_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/ro_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN
 $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ro_dns_alias.lng b/interface/web/dns/lib/lang/ro_dns_alias.lng
index a65a41ad8ee480ea0eef43cebba9b26a0d53fda8..925482e87bb637c346da3f76a4969516e991dfd6 100644
--- a/interface/web/dns/lib/lang/ro_dns_alias.lng
+++ b/interface/web/dns/lib/lang/ro_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Hostname tinta este vid';
 $wb['name_error_regex'] = 'Hostname in format gresit';
 $wb['data_error_empty'] = 'Hostname tinta este vid';
 $wb['data_error_regex'] = 'Hostname tinta format invalid';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ro_dns_cname.lng b/interface/web/dns/lib/lang/ro_dns_cname.lng
index c76d2587a19bd9df697a8d6c2fc3071ce906c302..4f1e842bb3edd6f37a453f842efc74fb966e5bba 100644
--- a/interface/web/dns/lib/lang/ro_dns_cname.lng
+++ b/interface/web/dns/lib/lang/ro_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Rubrica hostname necompletata';
 $wb['name_error_regex'] = 'Hostname cu format gresit';
 $wb['data_error_empty'] = 'Hostname tinta necompletat';
 $wb['data_error_regex'] = 'Hostname tinta cu format gresit';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/ru_dns_a.lng b/interface/web/dns/lib/lang/ru_dns_a.lng
index 5dd1329a1b7350e8eb85e65f73eb8a69af02fff6..254dd3a76772d67c88e50eb578914eb515ceb590 100644
--- a/interface/web/dns/lib/lang/ru_dns_a.lng
+++ b/interface/web/dns/lib/lang/ru_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Имя пустое.';
 $wb['name_error_regex'] = 'Имя узла имеет неправильный формат.';
 $wb['data_error_empty'] = 'IP-адрес пустой';
 $wb['ip_error_wrong'] = 'Неправильный формат IP-адреса';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Мин. время <b>TTL</b> 60 секунд.';
 ?>
diff --git a/interface/web/dns/lib/lang/ru_dns_aaaa.lng b/interface/web/dns/lib/lang/ru_dns_aaaa.lng
index efec59952a0cbf5ffb6d073bb054ae606ecb8a23..9513c8fdc21885899936cf9dd70bfed8526e3296 100644
--- a/interface/web/dns/lib/lang/ru_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/ru_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'У Вас нет прав добавлять эту за
 $wb['name_error_empty'] = 'Имя пустое.';
 $wb['name_error_regex'] = 'Неправильный формат имени хоста.';
 $wb['data_error_empty'] = 'Пустой IP-адрес';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'Неправильный формат IP-адреса';
 $wb['ttl_range_error'] = 'Мин. время <b>TTL</b> 60 секунд.';
 ?>
diff --git a/interface/web/dns/lib/lang/ru_dns_alias.lng b/interface/web/dns/lib/lang/ru_dns_alias.lng
index 32f1e065decc7704cd40065cc5fe00ec4a0cec4b..d80b0e7f9c4ef5a70a5f43c99debc00e30ef565b 100644
--- a/interface/web/dns/lib/lang/ru_dns_alias.lng
+++ b/interface/web/dns/lib/lang/ru_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Имя пустое.';
 $wb['name_error_regex'] = 'Имя узла имеет неправильный формат.';
 $wb['data_error_empty'] = 'Целевое имя узла пустое';
 $wb['data_error_regex'] = 'Целевое имя узла в неправильном формате';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Мин. время <b>TTL</b> 60 секунд.';
 ?>
diff --git a/interface/web/dns/lib/lang/ru_dns_cname.lng b/interface/web/dns/lib/lang/ru_dns_cname.lng
index 8fbddd6799ac93a98c6315bc0e1a442e3656a110..cd624657535fec57f2f8f3e932ce72cd4f277961 100644
--- a/interface/web/dns/lib/lang/ru_dns_cname.lng
+++ b/interface/web/dns/lib/lang/ru_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Имя пустое.';
 $wb['name_error_regex'] = 'Имя узла имеет неправильный формат.';
 $wb['data_error_empty'] = 'Целевое имя узла пустое';
 $wb['data_error_regex'] = 'Целевое имя узла имеет неправильный формат';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Мин. время <b>TTL</b> 60 секунд.';
 ?>
diff --git a/interface/web/dns/lib/lang/se_dns_a.lng b/interface/web/dns/lib/lang/se_dns_a.lng
index 577bb47d5b7211129dedb2eea6e0072fd3843187..36e5b50eb3836c822c58565386d260e5b581476d 100644
--- a/interface/web/dns/lib/lang/se_dns_a.lng
+++ b/interface/web/dns/lib/lang/se_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/se_dns_aaaa.lng b/interface/web/dns/lib/lang/se_dns_aaaa.lng
index da7eeb8a0f5f34a45e23a7b92b363cef03cc0f39..41b0d2202127712b17c8517b1f2a5a8f64e6bea9 100644
--- a/interface/web/dns/lib/lang/se_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/se_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'You do not have the permission to add a record to this DN
 $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'IP-Address empty';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IP-Address format invalid';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/se_dns_alias.lng b/interface/web/dns/lib/lang/se_dns_alias.lng
index bd4be9f219e66a4e78a408cc6cc5bd06f06c28e7..bf56c86fbe61a4713599eefd0cc739b153c78389 100644
--- a/interface/web/dns/lib/lang/se_dns_alias.lng
+++ b/interface/web/dns/lib/lang/se_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/se_dns_cname.lng b/interface/web/dns/lib/lang/se_dns_cname.lng
index 0d42cac5957e6582805629fa021be50221599e0a..fb10fbc01443fa5feedba9872f0050bda1b2a345 100644
--- a/interface/web/dns/lib/lang/se_dns_cname.lng
+++ b/interface/web/dns/lib/lang/se_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'The hostname is empty.';
 $wb['name_error_regex'] = 'The hostname has the wrong format.';
 $wb['data_error_empty'] = 'Target hostname empty';
 $wb['data_error_regex'] = 'Target hostname format invalid';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/sk_dns_a.lng b/interface/web/dns/lib/lang/sk_dns_a.lng
index 9937576f585a2c8b9eff1c16b176e6b32e4ad60c..1362b4624d6b2fe5a4e9b486fe7b8e568b124720 100644
--- a/interface/web/dns/lib/lang/sk_dns_a.lng
+++ b/interface/web/dns/lib/lang/sk_dns_a.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname je prázdny.';
 $wb['name_error_regex'] = 'Hostname má zlý formát.';
 $wb['data_error_empty'] = 'IP Adresa je prázdna';
 $wb['ip_error_wrong'] = 'IP Adresa má zlý formát.';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/sk_dns_aaaa.lng b/interface/web/dns/lib/lang/sk_dns_aaaa.lng
index 2631d325157b5681b892a76bc5c61146c30239c5..0716d157986249d30e8ab27578b652ed28f01a63 100644
--- a/interface/web/dns/lib/lang/sk_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/sk_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Nemáte oprávnenie Pridať záznam do tejto zóny DNS.';
 $wb['name_error_empty'] = 'Hostname je prázdny.';
 $wb['name_error_regex'] = 'Hostname má zlý formát.';
 $wb['data_error_empty'] = 'IP-Adresa prázdna';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IP-Adresa má zlý formát';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/sk_dns_alias.lng b/interface/web/dns/lib/lang/sk_dns_alias.lng
index a319049efc26a3b9e97a9c43d6884a82e7943934..ce167c7bcd35858cc2de8f597621de4e968f9d1a 100644
--- a/interface/web/dns/lib/lang/sk_dns_alias.lng
+++ b/interface/web/dns/lib/lang/sk_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Hostname je prázdny.';
 $wb['name_error_regex'] = 'Hostname má zlý formát.';
 $wb['data_error_empty'] = 'Cieľový hostname je prázdny';
 $wb['data_error_regex'] = 'Cieľový hostname má neplatný formát';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/sk_dns_cname.lng b/interface/web/dns/lib/lang/sk_dns_cname.lng
index c15528523432e1633d651ffe84826823f48a45e0..3d06062613ccb80d3992388ade530000262a8320 100644
--- a/interface/web/dns/lib/lang/sk_dns_cname.lng
+++ b/interface/web/dns/lib/lang/sk_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Hostname je prázdny.';
 $wb['name_error_regex'] = 'Hostname má zlý formát.';
 $wb['data_error_empty'] = 'Cieľový hostname je prázdny';
 $wb['data_error_regex'] = 'Target hostname má zlý format';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_a.lng b/interface/web/dns/lib/lang/tr_dns_a.lng
index bab67a4646eeb2e7cd2eb707e5c8498ef82b9e3a..06b96a7fd5445b2904a3c06039b3c7eee9b566c9 100644
--- a/interface/web/dns/lib/lang/tr_dns_a.lng
+++ b/interface/web/dns/lib/lang/tr_dns_a.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.';
 $wb['name_error_empty'] = 'Sunucu adı boş olamaz.';
 $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.';
 $wb['data_error_empty'] = 'IP Adresi boÅŸ olamaz';
-$wb['data_error_duplicate'] = 'Duplicate A or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, ALIAS or CNAME record';
 $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.';
 $wb['ip_error_wrong'] = 'IP adresi biçimi geçersiz';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_aaaa.lng b/interface/web/dns/lib/lang/tr_dns_aaaa.lng
index 8b31622d57ef2dcef330b1c67621ed4f24893a6f..cfc99307f063d2dc1c93cd4294778995a109f0c1 100644
--- a/interface/web/dns/lib/lang/tr_dns_aaaa.lng
+++ b/interface/web/dns/lib/lang/tr_dns_aaaa.lng
@@ -11,7 +11,7 @@ $wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.';
 $wb['name_error_empty'] = 'Sunucu adı boş olamaz.';
 $wb['name_error_regex'] = 'Sunucu adının biçimi geçersiz.';
 $wb['data_error_empty'] = 'IP Adresi boÅŸ olamaz';
-$wb['data_error_duplicate'] = 'Duplicate AAAA or CNAME record';
+$wb['data_error_duplicate'] = 'Duplicate AAAA, ALIAS or CNAME record';
 $wb['ip_error_wrong'] = 'IP adresinin biçimi geçersiz';
 $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_alias.lng b/interface/web/dns/lib/lang/tr_dns_alias.lng
index ce78fcf3032004a93aa77a3ec5277c945b2bb912..b152a5fbe6fca61ec9f94c06a4881de45cf1d095 100644
--- a/interface/web/dns/lib/lang/tr_dns_alias.lng
+++ b/interface/web/dns/lib/lang/tr_dns_alias.lng
@@ -12,5 +12,6 @@ $wb['name_error_empty'] = 'Sunucu adı boş olamaz.';
 $wb['name_error_regex'] = 'Sunucu adının biçimi geçersiz.';
 $wb['data_error_empty'] = 'Hedef sunucu adı boş olamaz';
 $wb['data_error_regex'] = 'Hedef sunucu adı biçimi geçersiz';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.';
 ?>
diff --git a/interface/web/dns/lib/lang/tr_dns_cname.lng b/interface/web/dns/lib/lang/tr_dns_cname.lng
index cc8ce3005c76aefd46cb3ec6d5ae4332ce429e05..97c02a4fa5ad0b7ea63f27d8ed08799d3a2ee92f 100644
--- a/interface/web/dns/lib/lang/tr_dns_cname.lng
+++ b/interface/web/dns/lib/lang/tr_dns_cname.lng
@@ -12,6 +12,6 @@ $wb['name_error_empty'] = 'Sunucu adı boş olamaz.';
 $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.';
 $wb['data_error_empty'] = 'Hedef sunucu adı boş olamaz';
 $wb['data_error_regex'] = 'Hedef sunucu adı biçimi geçersiz';
-$wb['data_error_duplicate'] = 'Duplicate A, AAAA, CNAME, or DNAME record';
+$wb['data_error_duplicate'] = 'Duplicate A, AAAA, ALIAS, CNAME, or DNAME record';
 $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.';
 ?>
diff --git a/interface/web/dns/templates/dns_import.htm b/interface/web/dns/templates/dns_import.htm
index dafb9016a0c3a13e2f3bd2bf0ecc241f9a440912..9d40107c89c7ee6f74435a05bf1697f34c0f2724 100644
--- a/interface/web/dns/templates/dns_import.htm
+++ b/interface/web/dns/templates/dns_import.htm
@@ -1,65 +1,92 @@
 <div class='page-header'>
-	<h1><tmpl_var name="zone_file_import_txt"></h1>
+	<h1>
+		<tmpl_var name="zone_file_import_txt">
+	</h1>
 </div>
-<p><tmpl_var name="list_desc_txt"></p>
+<p>
+	<tmpl_var name="list_desc_txt">
+</p>
+<div class="panel panel_language_import" style="padding:20px;">
+	<div class="pnl_formsarea">
+		<tmpl_if name="is_admin">
+			<div class="form-group">
+				<label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
+				<div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
+						{tmpl_var name='server_id'}
+					</select></div>
+			</div>
+			<div class="form-group">
+				<label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
+				<div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
+						{tmpl_var name='client_group_id'}
+					</select></div>
+			</div>
+			<tmpl_else>
+				<tmpl_if name="only_one_server">
+					<input type="hidden" id="server_id" name="server_id" value="{tmpl_var name='server_id_value'}" />
+					<tmpl_else>
+						<div class="form-group">
+							<label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
+							<div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
+									{tmpl_var name='server_id'}
+								</select></div>
+						</div>
+				</tmpl_if>
+		</tmpl_if>
+		<div class="form-group">
+			<label for="domain" class="col-sm-3 control-label">{tmpl_var name='domain_txt'}</label>
+			<tmpl_if name="domain_option">
+				<div class="col-sm-9"><select name="domain" id="domain" class="form-control">
+						{tmpl_var name='domain_option'}
+					</select></div>
+				<tmpl_else>
+					<div class="col-sm-9"><input type="text" name="domain" id="domain" value="{tmpl_var name='domain'}" class="form-control" onkeydown="keydown(event.which);" /></div>
+			</tmpl_if>
+			<div class="col-sm-3 col-text"></div>
+			<div class="col-sm-9 col-text">
+				<tmpl_var name='domain_field_desc_txt' }</div>
+			</div>
+			<div class="form-group">
+				<label for="file" class="col-sm-3 control-label">{tmpl_var name='zonefile_to_import_txt'}</label>
+				<div class="col-sm-9 col-text"><input name="file" id="file" size="30" type="file" class="fileUpload" /></div>
+			</div>
 
-            <tmpl_if name="is_admin">
-                <div class="form-group">
-                    <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
-                    <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
-                        {tmpl_var name='server_id'}
-                    </select></div>
-                </div>
-                <div class="form-group">
-                    <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
-                    <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
-                        {tmpl_var name='client_group_id'}
-                    </select></div>
-                </div>
-            <tmpl_else>
-                <tmpl_if name="only_one_server">
-                    <input type="hidden" id="server_id" name="server_id" value="{tmpl_var name='server_id_value'}" />
-                <tmpl_else>
-                    <div class="form-group">
-                        <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
-                        <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
-                            {tmpl_var name='server_id'}
-                        </select></div>
-                    </div>
-                </tmpl_if>
-            </tmpl_if>
-            <div class="form-group">
-                <label for="domain" class="col-sm-3 control-label">{tmpl_var name='domain_txt'}</label>
-                <tmpl_if name="domain_option">
-                    <div class="col-sm-9"><select name="domain" id="domain" class="form-control">
-                        {tmpl_var name='domain_option'}
-                    </select></div>
-                    <tmpl_else>
-                        <div class="col-sm-9"><input type="text" name="domain" id="domain" value="{tmpl_var name='domain'}" class="form-control" onkeydown="keydown(event.which);" /></div></tmpl_if>
-					<div class="col-sm-3 col-text"></div><div class="col-sm-9 col-text"><tmpl_var name='domain_field_desc_txt'}</div>
-            </div>    
-            <div class="form-group">
-                <label for="file" class="col-sm-3 control-label">{tmpl_var name='zonefile_to_import_txt'}</label>
-                <div class="col-sm-9 col-text"><input name="file" id="file" size="30" type="file" class="fileUpload" /></div>
-            </div>
-                
-            <tmpl_if name="msg">
-                <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
-            </tmpl_if>
-            <tmpl_if name="error">
-                <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
-            </tmpl_if>
-                
-            <input type="hidden" name="id" value="{tmpl_var name='id'}">
-                
-            <div class="clear"><div class="right">
-                <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_import.php" data-form-upload="true">{tmpl_var name='btn_save_txt'}</button>
-                <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-            </div></div>
-<script language="JavaScript" type="text/javascript">
-    function keydown(keynum){
-        if(keynum == 13){
-            jQuery('.positive').trigger('click');
-        }
-    }
-</script>
+			<tmpl_if name="msg">
+				<div id="OKMsg">
+					<p>
+						<tmpl_var name="msg">
+					</p>
+				</div>
+			</tmpl_if>
+			<tmpl_if name="error">
+				<div class='alert alert-danger clear'>
+					<div class='alert-label'>
+						<strong>
+							<tmpl_var name="error_txt">
+						</strong>
+					</div>
+					<div class='alert-content'>
+						<ul style="list-style-type:none">
+							<tmpl_var name="error">
+						</ul>
+					</div>
+				</div>
+			</tmpl_if>
+
+			<input type="hidden" name="id" value="{tmpl_var name='id'}">
+
+			<div class="clear">
+				<div class="right">
+					<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="dns/dns_import.php" data-form-upload="true">{tmpl_var name='btn_save_txt'}</button>
+					<button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+				</div>
+			</div>
+		</div>
+	</div>
+	<script language="JavaScript" type="text/javascript">
+		function keydown(keynum) {
+			if (keynum == 13) {
+				jQuery('.positive').trigger('click');
+			}
+		}
+	</script>
diff --git a/interface/web/dns/templates/dns_soa_edit.htm b/interface/web/dns/templates/dns_soa_edit.htm
index 24c9209ccc8035a28a4bd70a0175d1c5103f3c54..2859913f8647c3767898f71f1377e492a24e9d22 100644
--- a/interface/web/dns/templates/dns_soa_edit.htm
+++ b/interface/web/dns/templates/dns_soa_edit.htm
@@ -1,10 +1,19 @@
 <tmpl_if name="config_error_msg">
-  <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
+  <!--<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
     <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
     <div>
       <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
       <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
     </div>
+  </div>-->
+  <div class="alert alert-danger">
+    <p>
+      <tmpl_var name="configuration_error_txt">
+        <div>
+          <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
+          <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+        </div>
+    </p>
   </div>
 </tmpl_if>
 <tmpl_if name="is_admin">
@@ -12,55 +21,55 @@
     <tmpl_if name="edit_disabled">
       <label for="server_id_disabled" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
       <div class="col-sm-9"><select name="server_id_disabled" id="server_id_disabled" class="form-control" disabled="disabled">
-        {tmpl_var name='server_id'}
+          {tmpl_var name='server_id'}
         </select>
       </div>
       <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" />
       <tmpl_else>
-      <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
-      <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
-        {tmpl_var name='server_id'}
-        </select>
-      </div>
+        <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
+        <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
+            {tmpl_var name='server_id'}
+          </select>
+        </div>
     </tmpl_if>
   </div>
   <tmpl_unless name="domain_option">
     <div class="form-group">
       <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
       <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
-        {tmpl_var name='client_group_id'}
+          {tmpl_var name='client_group_id'}
         </select>
       </div>
     </div>
   </tmpl_unless>
   <tmpl_else>
-  <tmpl_if name="only_one_server">
-    <input type="hidden" id="server_id" name="server_id" value="{tmpl_var name='server_id_value'}" />
-    <tmpl_else>
-    <div class="form-group">
-      <tmpl_if name="edit_disabled">
-        <label for="server_id_disabled" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
-        <div class="col-sm-9"><select name="server_id_disabled" id="server_id_disabled" class="form-control" disabled="disabled">
-          {tmpl_var name='client_server_id'}
-          </select>
-        </div>
-        <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" />
-        <tmpl_else>
-        <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
-        <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
-          {tmpl_var name='client_server_id'}
-          </select>
+    <tmpl_if name="only_one_server">
+      <input type="hidden" id="server_id" name="server_id" value="{tmpl_var name='server_id_value'}" />
+      <tmpl_else>
+        <div class="form-group">
+          <tmpl_if name="edit_disabled">
+            <label for="server_id_disabled" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
+            <div class="col-sm-9"><select name="server_id_disabled" id="server_id_disabled" class="form-control" disabled="disabled">
+                {tmpl_var name='client_server_id'}
+              </select>
+            </div>
+            <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" />
+            <tmpl_else>
+              <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
+              <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
+                  {tmpl_var name='client_server_id'}
+                </select>
+              </div>
+          </tmpl_if>
         </div>
-      </tmpl_if>
-    </div>
-  </tmpl_if>
+    </tmpl_if>
 </tmpl_if>
 <tmpl_if name="is_reseller">
   <tmpl_unless name="domain_option">
     <div class="form-group">
       <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
       <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
-        {tmpl_var name='client_group_id'}
+          {tmpl_var name='client_group_id'}
         </select>
       </div>
     </div>
@@ -71,15 +80,15 @@
   <tmpl_if name="domain_option">
     <div class="col-sm-9">
       <select name="origin" id="origin" class="form-control">
-      {tmpl_var name='domain_option'}
+        {tmpl_var name='domain_option'}
       </select>
       <p class="formHint">{tmpl_var name='eg_domain_tld'}</p>
     </div>
     <tmpl_else>
-    <div class="col-sm-9">
-      <input type="text" name="origin" id="origin" value="{tmpl_var name='origin'}" class="form-control" />
-      <p class="formHint">{tmpl_var name='eg_domain_tld'}</p>
-    </div>
+      <div class="col-sm-9">
+        <input type="text" name="origin" id="origin" value="{tmpl_var name='origin'}" class="form-control" />
+        <p class="formHint">{tmpl_var name='eg_domain_tld'}</p>
+      </div>
   </tmpl_if>
 </div>
 <div class="form-group">
@@ -178,40 +187,40 @@
 </div>
 <script language="JavaScript" type="text/javascript">
   jQuery('#xfer').ispconfigSearch({
-      dataSrc: '/dns/ajax_get_json.php?type=get_ipv4',
-      resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
-      ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
-      noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
-      noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
-      minChars: 0,
-      cssPrefix: 'df-',
-      fillSearchField: true,
-      fillSearchFieldWith: 'fill_text',
-      searchFieldWatermark: '',
-      resultBoxPosition: ''
+    dataSrc: '/dns/ajax_get_json.php?type=get_ipv4',
+    resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
+    ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
+    noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
+    noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
+    minChars: 0,
+    cssPrefix: 'df-',
+    fillSearchField: true,
+    fillSearchFieldWith: 'fill_text',
+    searchFieldWatermark: '',
+    resultBoxPosition: ''
   });
   jQuery('#also_notify').ispconfigSearch({
-      dataSrc: '/dns/ajax_get_json.php?type=get_ipv4',
-      resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
-      ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
-      noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
-      noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
-      minChars: 0,
-      cssPrefix: 'df-',
-      fillSearchField: true,
-      fillSearchFieldWith: 'fill_text',
-      searchFieldWatermark: '',
-      resultBoxPosition: ''
+    dataSrc: '/dns/ajax_get_json.php?type=get_ipv4',
+    resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
+    ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
+    noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
+    noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
+    minChars: 0,
+    cssPrefix: 'df-',
+    fillSearchField: true,
+    fillSearchFieldWith: 'fill_text',
+    searchFieldWatermark: '',
+    resultBoxPosition: ''
   });
   jQuery('#dnssec_wanted').on('click', function(event) {
-      if ($(this).is(':checked')) {
-          return;
-      }
+    if ($(this).is(':checked')) {
+      return;
+    }
 
-      if (window.confirm('{tmpl_var name="dnssec_wanted_info"}')) {
-          return;
-      }
+    if (window.confirm('{tmpl_var name="dnssec_wanted_info"}')) {
+      return;
+    }
 
-      event.preventDefault();
+    event.preventDefault();
   });
 </script>
diff --git a/interface/web/dns/templates/dns_wizard.htm b/interface/web/dns/templates/dns_wizard.htm
index 2f4f24b4e08266604971ea4d521b7206290b6e48..07d064c1619ff850d9328dc748e8307237b38e39 100644
--- a/interface/web/dns/templates/dns_wizard.htm
+++ b/interface/web/dns/templates/dns_wizard.htm
@@ -1,137 +1,159 @@
 <div class='page-header'>
-	<h1><tmpl_var name="list_head_txt"></h1>
+	<h1>
+		<tmpl_var name="list_head_txt">
+	</h1>
 </div>
 
-<tmpl_if name="error">
-    <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
-</tmpl_if>
-
-
-            <div class="form-group">
-                <label for="template_id" class="col-sm-3 control-label">{tmpl_var name='template_id_txt'}</label>
-                <div class="col-sm-9"><select name="template_id" id="template_id" class="form-control" onChange="ISPConfig.submitForm('pageForm','dns/dns_wizard.php')">
-                    {tmpl_var name='template_id_option'}
-                </select></div>
-            </div>
-            <tmpl_if name="is_admin">
-                <div class="form-group">
-                    <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
-                    <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
-                        {tmpl_var name='server_id'}
-                    </select></div>
-                </div>
-                <tmpl_unless name="domain_option">
-                    <div class="form-group">
-                        <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
-                        <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
-                            {tmpl_var name='client_group_id'}
-                        </select></div>
-                    </div>
-                </tmpl_unless>
-            <tmpl_else>
-                <tmpl_if name="only_one_server">
-                    <input type="hidden" id="server_id" name="server_id" value="{tmpl_var name='server_id_value'}" />
-                <tmpl_else>
-                    <div class="form-group">
-                        <label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
-                        <div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
-                            {tmpl_var name='server_id'}
-                        </select></div>
-                    </div>
-                </tmpl_if>
-            </tmpl_if>
-            <tmpl_if name="is_reseller">
-                <tmpl_unless name="domain_option">
-                    <div class="form-group">
-                        <label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
-                        <div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
-                            {tmpl_var name='client_group_id'}
-                        </select></div>
-                    </div>
-                </tmpl_unless>
-            </tmpl_if>
-            <tmpl_if name="DOMAIN_VISIBLE">
-                <div class="form-group">
-                    <label for="domain" class="col-sm-3 control-label">{tmpl_var name='domain_txt'}</label>
-                    <tmpl_if name="domain_option">
-                        <div class="col-sm-9"><select name="domain" id="domain" class="form-control">
-                            {tmpl_var name='domain_option'}
-                        </select></div>
-                        <tmpl_else>
-                            <div class="col-sm-9"><input type="text" name="domain" id="domain" value="{tmpl_var name='domain'}" class="form-control" /></div></tmpl_if>
-                </div>
-            </tmpl_if>
-            <tmpl_if name="IP_VISIBLE">
-                <div class="form-group">
-                    <label for="ip" class="col-sm-3 control-label">{tmpl_var name='ip_txt'}</label>
-                    <div class="col-sm-9"><input type="text" name="ip" id="ip" value="{tmpl_var name='ip'}" class="form-control" /></div></div>
-            </tmpl_if>
-            <tmpl_if name="IPV6_VISIBLE">
-                <div class="form-group">
-                    <label for="ipv6" class="col-sm-3 control-label">{tmpl_var name='ipv6_txt'}</label>
-                    <div class="col-sm-9"><input type="text" name="ipv6" id="ipv6" value="{tmpl_var name='ipv6'}" class="form-control" /></div></div>
-            </tmpl_if>
-            <tmpl_if name="NS1_VISIBLE">
-                <div class="form-group">
-                    <label for="ns1" class="col-sm-3 control-label">{tmpl_var name='ns1_txt'}</label>
-                    <div class="col-sm-9"><input type="text" name="ns1" id="ns1" value="{tmpl_var name='ns1'}" class="form-control" /></div></div>
-            </tmpl_if>
-            <tmpl_if name="NS2_VISIBLE">
-                <div class="form-group">
-                    <label for="ns2" class="col-sm-3 control-label">{tmpl_var name='ns2_txt'}</label>
-                    <div class="col-sm-9"><input type="text" name="ns2" id="ns2" value="{tmpl_var name='ns2'}" class="form-control" /></div></div>
-            </tmpl_if>
-            <tmpl_if name="EMAIL_VISIBLE">
-                <div class="form-group">
-                    <label for="email" class="col-sm-3 control-label">{tmpl_var name='email_txt'}</label>
-                    <div class="col-sm-9"><input type="text" name="email" id="email" value="{tmpl_var name='email'}" class="form-control" /></div></div>
-            </tmpl_if>
-            <tmpl_if name="DKIM_VISIBLE">
+<div class="panel panel_language_import" style="padding:20px;">
+	<div class="pnl_formsarea">
+		<tmpl_if name="error">
+			<div class='alert alert-danger clear'>
+				<div class='alert-label'><strong>
+						<tmpl_var name="error_txt">
+					</strong></div>
+				<div class='alert-content'>
+					<ul style="list-style-type:none">
+						<tmpl_var name="error">
+					</ul>
+				</div>
+			</div>
+		</tmpl_if>
+		<div class="form-group">
+			<label for="template_id" class="col-sm-3 control-label">{tmpl_var name='template_id_txt'}</label>
+			<div class="col-sm-9"><select name="template_id" id="template_id" class="form-control" onChange="ISPConfig.submitForm('pageForm','dns/dns_wizard.php')">
+					{tmpl_var name='template_id_option'}
+				</select></div>
+		</div>
+		<tmpl_if name="is_admin">
+			<div class="form-group">
+				<label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
+				<div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
+						{tmpl_var name='server_id'}
+					</select></div>
+			</div>
+			<tmpl_unless name="domain_option">
 				<div class="form-group">
-					<label for="dkim" class="col-sm-3 control-label">{tmpl_var name='dkim_txt'}</label>
-                    <div class="col-sm-9"><input type="checkbox" disabled readonly checked><input name="dkim" type="hidden" maxlength="255" type="text"/></div></div>
-            </tmpl_if>
-            <tmpl_if name="DNSSEC_VISIBLE">
+					<label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
+					<div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
+							{tmpl_var name='client_group_id'}
+						</select></div>
+				</div>
+			</tmpl_unless>
+			<tmpl_else>
+				<tmpl_if name="only_one_server">
+					<input type="hidden" id="server_id" name="server_id" value="{tmpl_var name='server_id_value'}" />
+					<tmpl_else>
+						<div class="form-group">
+							<label for="server_id" class="col-sm-3 control-label">{tmpl_var name='server_id_txt'}</label>
+							<div class="col-sm-9"><select name="server_id" id="server_id" class="form-control">
+									{tmpl_var name='server_id'}
+								</select></div>
+						</div>
+				</tmpl_if>
+		</tmpl_if>
+		<tmpl_if name="is_reseller">
+			<tmpl_unless name="domain_option">
 				<div class="form-group">
-					<label for="dkim" class="col-sm-3 control-label">{tmpl_var name='dnssec_txt'}</label>
-                    <div class="col-sm-9"><input type="checkbox" name="dnssec" value="Y"></div></div>
-            </tmpl_if>
-			
-        
-            
-        <input type="hidden" name="create" value="0" />
-            
-        <div class="clear"><div class="right">
-            <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" name="btn_create" onclick="document.pageForm.create.value=1; ISPConfig.submitForm('pageForm','dns/dns_wizard.php');">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
+					<label for="client_group_id" class="col-sm-3 control-label">{tmpl_var name='client_txt'}</label>
+					<div class="col-sm-9"><select name="client_group_id" id="client_group_id" class="form-control">
+							{tmpl_var name='client_group_id'}
+						</select></div>
+				</div>
+			</tmpl_unless>
+		</tmpl_if>
+		<tmpl_if name="DOMAIN_VISIBLE">
+			<div class="form-group">
+				<label for="domain" class="col-sm-3 control-label">{tmpl_var name='domain_txt'}</label>
+				<tmpl_if name="domain_option">
+					<div class="col-sm-9"><select name="domain" id="domain" class="form-control">
+							{tmpl_var name='domain_option'}
+						</select></div>
+					<tmpl_else>
+						<div class="col-sm-9"><input type="text" name="domain" id="domain" value="{tmpl_var name='domain'}" class="form-control" /></div>
+				</tmpl_if>
+			</div>
+		</tmpl_if>
+		<tmpl_if name="IP_VISIBLE">
+			<div class="form-group">
+				<label for="ip" class="col-sm-3 control-label">{tmpl_var name='ip_txt'}</label>
+				<div class="col-sm-9"><input type="text" name="ip" id="ip" value="{tmpl_var name='ip'}" class="form-control" /></div>
+			</div>
+		</tmpl_if>
+		<tmpl_if name="IPV6_VISIBLE">
+			<div class="form-group">
+				<label for="ipv6" class="col-sm-3 control-label">{tmpl_var name='ipv6_txt'}</label>
+				<div class="col-sm-9"><input type="text" name="ipv6" id="ipv6" value="{tmpl_var name='ipv6'}" class="form-control" /></div>
+			</div>
+		</tmpl_if>
+		<tmpl_if name="NS1_VISIBLE">
+			<div class="form-group">
+				<label for="ns1" class="col-sm-3 control-label">{tmpl_var name='ns1_txt'}</label>
+				<div class="col-sm-9"><input type="text" name="ns1" id="ns1" value="{tmpl_var name='ns1'}" class="form-control" /></div>
+			</div>
+		</tmpl_if>
+		<tmpl_if name="NS2_VISIBLE">
+			<div class="form-group">
+				<label for="ns2" class="col-sm-3 control-label">{tmpl_var name='ns2_txt'}</label>
+				<div class="col-sm-9"><input type="text" name="ns2" id="ns2" value="{tmpl_var name='ns2'}" class="form-control" /></div>
+			</div>
+		</tmpl_if>
+		<tmpl_if name="EMAIL_VISIBLE">
+			<div class="form-group">
+				<label for="email" class="col-sm-3 control-label">{tmpl_var name='email_txt'}</label>
+				<div class="col-sm-9"><input type="text" name="email" id="email" value="{tmpl_var name='email'}" class="form-control" /></div>
+			</div>
+		</tmpl_if>
+		<tmpl_if name="DKIM_VISIBLE">
+			<div class="form-group">
+				<label for="dkim" class="col-sm-3 control-label">{tmpl_var name='dkim_txt'}</label>
+				<div class="col-sm-9"><input type="checkbox" disabled readonly checked><input name="dkim" type="hidden" maxlength="255" type="text" /></div>
+			</div>
+		</tmpl_if>
+		<tmpl_if name="DNSSEC_VISIBLE">
+			<div class="form-group">
+				<label for="dkim" class="col-sm-3 control-label">{tmpl_var name='dnssec_txt'}</label>
+				<div class="col-sm-9"><input type="checkbox" name="dnssec" value="Y"></div>
+			</div>
+		</tmpl_if>
+
+		<input type="hidden" name="create" value="0" />
+
+		<div class="clear">
+			<div class="right">
+				<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" name="btn_create" onclick="document.pageForm.create.value=1; ISPConfig.submitForm('pageForm','dns/dns_wizard.php');">{tmpl_var
+					name='btn_save_txt'}</button>
+				<button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="dns/dns_soa_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+			</div>
+		</div>
+	</div>
+</div>
 <script language="JavaScript" type="text/javascript">
-    jQuery('#ip').ispconfigSearch({
-        dataSrc: '/dns/ajax_get_json.php?type=get_ipv4',
-        resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
-        ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
-        noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
-        noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
-        minChars: 0,
-        cssPrefix: 'df-',
-        fillSearchField: true,
-        fillSearchFieldWith: 'fill_text',
-        searchFieldWatermark: '',
-        resultBoxPosition: ''
-    });	
+	jQuery('#ip').ispconfigSearch({
+		dataSrc: '/dns/ajax_get_json.php?type=get_ipv4',
+		resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
+		ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
+		noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
+		noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
+		minChars: 0,
+		cssPrefix: 'df-',
+		fillSearchField: true,
+		fillSearchFieldWith: 'fill_text',
+		searchFieldWatermark: '',
+		resultBoxPosition: ''
+	});
 </script>
 <script language="JavaScript" type="text/javascript">
-    jQuery('#ipv6').ispconfigSearch({
-        dataSrc: '/dns/ajax_get_json.php?type=get_ipv6',
-        resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
-        ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
-        noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
-        noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
-        minChars: 0,
-        cssPrefix: 'df-',
-        fillSearchField: true,
-        fillSearchFieldWith: 'fill_text',
-        searchFieldWatermark: '',
-        resultBoxPosition: ''
-    });
+	jQuery('#ipv6').ispconfigSearch({
+		dataSrc: '/dns/ajax_get_json.php?type=get_ipv6',
+		resultsLimit: '$ <tmpl_var name="globalsearch_resultslimit_of_txt"> % <tmpl_var name="globalsearch_resultslimit_results_txt">',
+		ResultsTextPrefix: '<tmpl_var name="globalsearch_suggestions_text_txt">',
+		noResultsText: '<tmpl_var name="globalsearch_noresults_text_txt">',
+		noResultsLimit: '<tmpl_var name="globalsearch_noresults_limit_txt">',
+		minChars: 0,
+		cssPrefix: 'df-',
+		fillSearchField: true,
+		fillSearchFieldWith: 'fill_text',
+		searchFieldWatermark: '',
+		resultBoxPosition: ''
+	});
 </script>
diff --git a/interface/web/mail/lib/lang/ar_mail_forward.lng b/interface/web/mail/lib/lang/ar_mail_forward.lng
index 95f9a134958206727bcd41e411e2feb63700d21e..3f9cfa956b329bc9f19e1316f32429ea5a5da1c5 100644
--- a/interface/web/mail/lib/lang/ar_mail_forward.lng
+++ b/interface/web/mail/lib/lang/ar_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'There is already a mailbox with this email addre
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/bg_mail_forward.lng b/interface/web/mail/lib/lang/bg_mail_forward.lng
index 538d65dc2a52e5e54172063dbdf616ba89797ab4..b5c80dd89d244a76039b09d25322a3dce8939b19 100644
--- a/interface/web/mail/lib/lang/bg_mail_forward.lng
+++ b/interface/web/mail/lib/lang/bg_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Вече съществува пощенска 
 $wb['domain_txt'] = 'Домейн';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/br_mail_forward.lng b/interface/web/mail/lib/lang/br_mail_forward.lng
index 5a2400e49b9b215f9cfd68b5a9b1b86341e3e852..1402019fdcf6276743b06810ed3555e63077563a 100644
--- a/interface/web/mail/lib/lang/br_mail_forward.lng
+++ b/interface/web/mail/lib/lang/br_mail_forward.lng
@@ -6,6 +6,8 @@ $wb['limit_mailforward_txt'] = 'O limite de encaminhamentos de e-mail para esta
 $wb['duplicate_mailbox_txt'] = 'Já existe um conta de e-mail idêntica.';
 $wb['domain_txt'] = 'Domínio';
 $wb['source_txt'] = 'Endereço de e-mail de origem';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Por favor informe um endereço de e-mail válido.';
 $wb['send_as_txt'] = 'Enviar como';
 $wb['send_as_exp'] = 'Permitir o destino enviar e-mails usando este endereço como origem (se o destino for interno)';
diff --git a/interface/web/mail/lib/lang/ca_mail_forward.lng b/interface/web/mail/lib/lang/ca_mail_forward.lng
index c4a6c1ea260308c1f7017044c3ed259318c3ee9a..7b8feb1e8f1d7bdcd3b58b02dd897f7adaf2fc2b 100644
--- a/interface/web/mail/lib/lang/ca_mail_forward.lng
+++ b/interface/web/mail/lib/lang/ca_mail_forward.lng
@@ -6,6 +6,8 @@ $wb['limit_mailforward_txt'] = 'Le nombre maximal de transferts d\'email pour vo
 $wb['duplicate_mailbox_txt'] = 'Il y a déja une boite courriel avec cette adresse courriel';
 $wb['domain_txt'] = 'Domaine';
 $wb['source_txt'] = 'Source courriel';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/cz_mail_forward.lng b/interface/web/mail/lib/lang/cz_mail_forward.lng
index f471ce97f47bf7d4fb8505ea02263daf6401d216..0685fbbd4946413e072f499b82be5ad8e85bea66 100644
--- a/interface/web/mail/lib/lang/cz_mail_forward.lng
+++ b/interface/web/mail/lib/lang/cz_mail_forward.lng
@@ -6,6 +6,8 @@ $wb['limit_mailforward_txt'] = 'Byl dosažen maximální počet e-mail předáv
 $wb['duplicate_mailbox_txt'] = 'Mailbox s touto adresou již existuje';
 $wb['domain_txt'] = 'Doména';
 $wb['source_txt'] = 'Zdrojový e-mail';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Zadejte prosím platnou e-mailovou adresu.';
 $wb['send_as_txt'] = 'Odeslat jako';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/de_mail_forward.lng b/interface/web/mail/lib/lang/de_mail_forward.lng
index f10d789671ee572ff4f4cdda1acc489c20588480..4825ef781121cf0e4cfea82145863170b505df65 100644
--- a/interface/web/mail/lib/lang/de_mail_forward.lng
+++ b/interface/web/mail/lib/lang/de_mail_forward.lng
@@ -6,6 +6,8 @@ $wb['limit_mailforward_txt'] = 'Die maximale Anzahl an E-Mail Weiterleitungen f
 $wb['duplicate_mailbox_txt'] = 'Es existiert bereits ein E-Mail Konto mit dieser Adresse.';
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Quell E-Mail Adresse';
+$wb['destination_error_empty'] = 'Das Weiterleitungsziel darf nicht leer sein.';
+$wb['destination_error_isemail'] = 'Das Weiterleitungsziel enthält mindestens eine ungültige E-Mail-Adresse.';
 $wb['email_error_isemail'] = 'Bitte geben Sie eine gültige E-Mail Adresse an.';
 $wb['send_as_txt'] = 'Senden als';
 $wb['send_as_exp'] = 'Ziel erlauben, die Adresse als Absender zu nutzen (Nur, falls das Ziel intern ist)';
diff --git a/interface/web/mail/lib/lang/dk_mail_forward.lng b/interface/web/mail/lib/lang/dk_mail_forward.lng
index 144435b7be0cdcfd086df5aa17ffebc80a4c312f..ba47d8421d438cea4b5c29871bd1351c0bca2731 100644
--- a/interface/web/mail/lib/lang/dk_mail_forward.lng
+++ b/interface/web/mail/lib/lang/dk_mail_forward.lng
@@ -6,6 +6,8 @@ $wb['limit_mailforward_txt'] = 'Max. antal af e-mail forwarders for din konto er
 $wb['duplicate_mailbox_txt'] = 'Der er allerede en mailboks med denne e-mail adresse';
 $wb['domain_txt'] = 'Domæne';
 $wb['source_txt'] = 'Kilde E-mail';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/el_mail_forward.lng b/interface/web/mail/lib/lang/el_mail_forward.lng
index 9a316c30188986eaebfa5ba96aaf3f3df94e0ab9..8893b2fa0ffb886cefbceea5ad37f2d7a9ef45d0 100644
--- a/interface/web/mail/lib/lang/el_mail_forward.lng
+++ b/interface/web/mail/lib/lang/el_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Υπάρχει ήδη μια θυρίδα με 
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/en_mail_forward.lng b/interface/web/mail/lib/lang/en_mail_forward.lng
index afa33635608e8f7eb3ac262cdbe2bf0116beaddc..c38e2bf4ffe7c38e3ea4cdce2acf7444e1ae3b8b 100644
--- a/interface/web/mail/lib/lang/en_mail_forward.lng
+++ b/interface/web/mail/lib/lang/en_mail_forward.lng
@@ -6,6 +6,8 @@ $wb['limit_mailforward_txt'] = 'The max. number of email forwarders for your acc
 $wb['duplicate_mailbox_txt'] = 'There is already a mailbox with this email address';
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/es_mail_forward.lng b/interface/web/mail/lib/lang/es_mail_forward.lng
index 2520e06b39b3d8138abb53cecfb42a1066aade6e..7ea99ea61909f1b6388fbe7a0c58454f15f73a73 100644
--- a/interface/web/mail/lib/lang/es_mail_forward.lng
+++ b/interface/web/mail/lib/lang/es_mail_forward.lng
@@ -3,6 +3,8 @@ $wb['active_txt'] = 'Habilitado';
 $wb['destination_txt'] = 'Destino del correo';
 $wb['domain_txt'] = 'Dominio';
 $wb['duplicate_mailbox_txt'] = 'Ya existe un buzón con esta cuenta de correo.';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Por favor, introduzca una dirección de correo válida.';
 $wb['email_txt'] = 'Correo';
 $wb['greylisting_txt'] = 'Habilitar Lista Gris';
diff --git a/interface/web/mail/lib/lang/fi_mail_forward.lng b/interface/web/mail/lib/lang/fi_mail_forward.lng
index 8f201579ec07e6f0dbaa06a9d6720d3e41da4407..80d34b500437108ba8d7300d27dd2af6e561fb5e 100644
--- a/interface/web/mail/lib/lang/fi_mail_forward.lng
+++ b/interface/web/mail/lib/lang/fi_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Edelleenlähetyssääntö osoitteelle on jo olem
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/fr_mail_forward.lng b/interface/web/mail/lib/lang/fr_mail_forward.lng
index 4c40b194193258227cfc625e6b1e0f3204550d72..fd6d13c6bb0d84e4f1917cbc0f368b24d2ae2f5b 100644
--- a/interface/web/mail/lib/lang/fr_mail_forward.lng
+++ b/interface/web/mail/lib/lang/fr_mail_forward.lng
@@ -6,6 +6,8 @@ $wb['limit_mailforward_txt'] = 'Le nombre maximal de transferts d’e-mail pour
 $wb['duplicate_mailbox_txt'] = 'Il y a déja une boîte e-mail avec cette adresse e-mail';
 $wb['domain_txt'] = 'Domaine';
 $wb['source_txt'] = 'Source Email';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/hr_mail_forward.lng b/interface/web/mail/lib/lang/hr_mail_forward.lng
index 3d815230ab90d4b386808c6bd3cb58d175369059..10abd5fe9286fceb3d1f40b3707c369bafcc39f3 100644
--- a/interface/web/mail/lib/lang/hr_mail_forward.lng
+++ b/interface/web/mail/lib/lang/hr_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Već postoji mailbox sa tom email adresom';
 $wb['domain_txt'] = 'Domena';
 $wb['source_txt'] = 'Izvorni email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/hu_mail_forward.lng b/interface/web/mail/lib/lang/hu_mail_forward.lng
index 7d46b784abd3c624f6a6afb186655643f9b32a48..c58ae29d317bd3de03e716cbfe77f76cb068eaaa 100644
--- a/interface/web/mail/lib/lang/hu_mail_forward.lng
+++ b/interface/web/mail/lib/lang/hu_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'There is already a mailbox with this email addre
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/id_mail_forward.lng b/interface/web/mail/lib/lang/id_mail_forward.lng
index 3db6c759c5c28309035951c49bcd4afcbc9d34b0..5f0c788878e3cb5223205438c0cfaa1b47997843 100644
--- a/interface/web/mail/lib/lang/id_mail_forward.lng
+++ b/interface/web/mail/lib/lang/id_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Sudah ada mailbox untuk alamat email ini';
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/it_mail_forward.lng b/interface/web/mail/lib/lang/it_mail_forward.lng
index e71f91b4344a532aac9d3969f23560cb54d8c2ad..3b5210fba1e19d02aa9ae23fcc771937f1910e1e 100644
--- a/interface/web/mail/lib/lang/it_mail_forward.lng
+++ b/interface/web/mail/lib/lang/it_mail_forward.lng
@@ -6,6 +6,8 @@ $wb['limit_mailforward_txt'] = 'Raggiunto il numero massimo di forwarders per il
 $wb['duplicate_mailbox_txt'] = 'Esiste già una casella email per questo indirizzo';
 $wb['domain_txt'] = 'Dominio';
 $wb['source_txt'] = 'Source Email';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/ja_mail_forward.lng b/interface/web/mail/lib/lang/ja_mail_forward.lng
index eb742ce42635357753a5409ab9a3710a58ee971e..f849f7bf18070bb4073d96c1982e26063dac971d 100644
--- a/interface/web/mail/lib/lang/ja_mail_forward.lng
+++ b/interface/web/mail/lib/lang/ja_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'このメールアドレス向けのメールボ
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/nl_mail_forward.lng b/interface/web/mail/lib/lang/nl_mail_forward.lng
index 4fa4422178a9edf261cd41279ee7b632e33b6f5b..6bf586a0d2b849cf643a71d2cae3f7b5e74c5b86 100644
--- a/interface/web/mail/lib/lang/nl_mail_forward.lng
+++ b/interface/web/mail/lib/lang/nl_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Er is al een mailbox met dit e-mailadres';
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/pl_mail_forward.lng b/interface/web/mail/lib/lang/pl_mail_forward.lng
index 42ba61e3738670ccd0655db2aef6cf3756426c3f..ce79e1093894a8698e8d4dd9b3f3e63fa9ef1121 100644
--- a/interface/web/mail/lib/lang/pl_mail_forward.lng
+++ b/interface/web/mail/lib/lang/pl_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Istnieje już skrzynka pocztowa o podanym adresi
 $wb['domain_txt'] = 'Domena';
 $wb['source_txt'] = 'E-mail źródłowy';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/pt_mail_forward.lng b/interface/web/mail/lib/lang/pt_mail_forward.lng
index 784acfa1d33112f1779adb1f4f7bf04194c42bfd..db67461967dd5fa9926bf34ea2dfb0a04d287ad8 100644
--- a/interface/web/mail/lib/lang/pt_mail_forward.lng
+++ b/interface/web/mail/lib/lang/pt_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Já existe uma caixa de correio com este endere
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/ro_mail_forward.lng b/interface/web/mail/lib/lang/ro_mail_forward.lng
index 8e2ed55d74a4909e893dbaa32384370612bcc630..5e00bf05271f58029e2676aad9430019bede7592 100644
--- a/interface/web/mail/lib/lang/ro_mail_forward.lng
+++ b/interface/web/mail/lib/lang/ro_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'There is already a mailbox with this email addre
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/ru_mail_forward.lng b/interface/web/mail/lib/lang/ru_mail_forward.lng
index 94573623af8e1c737cf2efb19bc4d43d64c3df26..6eb11f4f9130677a55bfc428eba2863e143b17b8 100644
--- a/interface/web/mail/lib/lang/ru_mail_forward.lng
+++ b/interface/web/mail/lib/lang/ru_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Почтовый ящик с таким имен
 $wb['domain_txt'] = 'Домен';
 $wb['source_txt'] = 'Источник Email';
 $wb['greylisting_txt'] = 'Включить серый список (Greylisting)';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Некорректный почтовый адрес.';
 $wb['send_as_txt'] = 'Отправить как';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/se_mail_forward.lng b/interface/web/mail/lib/lang/se_mail_forward.lng
index d49fd63ace6d2353df351ed1ac0a240274ff434d..7b0aa2bc163a924bb01a49550cd3ba44c36d8f49 100644
--- a/interface/web/mail/lib/lang/se_mail_forward.lng
+++ b/interface/web/mail/lib/lang/se_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Det finns redan ett epostkonto med denna adress'
 $wb['domain_txt'] = 'Domän';
 $wb['source_txt'] = 'Källadress';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/sk_mail_forward.lng b/interface/web/mail/lib/lang/sk_mail_forward.lng
index 8932dc9ac5270af310f5ddf58f269b63198239b4..399971261aa76a5d0d3bf6c48333b66b7324c94f 100644
--- a/interface/web/mail/lib/lang/sk_mail_forward.lng
+++ b/interface/web/mail/lib/lang/sk_mail_forward.lng
@@ -7,6 +7,8 @@ $wb['duplicate_mailbox_txt'] = 'Existuje už schránku s touto e-mailovou adreso
 $wb['domain_txt'] = 'Domain';
 $wb['source_txt'] = 'Source Email';
 $wb['greylisting_txt'] = 'Enable greylisting';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Please enter a valid email address.';
 $wb['send_as_txt'] = 'Send as';
 $wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)';
diff --git a/interface/web/mail/lib/lang/tr_mail_forward.lng b/interface/web/mail/lib/lang/tr_mail_forward.lng
index 2352cd945f1922157886698000a7d5637f5681d0..bdcd02a8623c212d9bfe7a8045a9d8d302becdaa 100644
--- a/interface/web/mail/lib/lang/tr_mail_forward.lng
+++ b/interface/web/mail/lib/lang/tr_mail_forward.lng
@@ -6,6 +6,8 @@ $wb['limit_mailforward_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla e-posta
 $wb['duplicate_mailbox_txt'] = 'Bu e-posta adresini kullanan bir e-posta kutusu zaten var';
 $wb['domain_txt'] = 'Etki Alanı';
 $wb['source_txt'] = 'Kaynak E-posta';
+$wb['destination_error_empty'] = 'The destination must not be empty.';
+$wb['destination_error_isemail'] = 'The destination contains at least one invalid email address.';
 $wb['email_error_isemail'] = 'Lütfen geçerli bir e-posta adresi yazın.';
 $wb['send_as_txt'] = 'Gönderen';
 $wb['send_as_exp'] = 'Hedef bu adresi kaynak olarak göstererek e-posta gönderebilsin (hedef iç kullanıcı ise)';
diff --git a/interface/web/mail/mail_forward_edit.php b/interface/web/mail/mail_forward_edit.php
index e783ad98a9e390363a8b32c34660027ff4c7203b..3106dc477c58dad075bc550a6c03698c9e7b5b6a 100644
--- a/interface/web/mail/mail_forward_edit.php
+++ b/interface/web/mail/mail_forward_edit.php
@@ -120,6 +120,19 @@ class page_action extends tform_actions {
 		unset($this->dataRecord["email_local_part"]);
 		unset($this->dataRecord["email_domain"]);
 
+		if(trim($this->dataRecord['destination']) == '') {
+			$app->tform->errorMessage .= $app->tform->lng('destination_error_empty') . '<br />';
+		} else {
+			$targets = preg_split('/[,;\s]+/', trim($this->dataRecord['destination']));
+			foreach($targets as $target) {
+				if(!$target || filter_var($target, FILTER_VALIDATE_EMAIL) === false) {
+					$app->tform->errorMessage .= $app->tform->lng('destination_error_isemail') . '<br />';
+					break;
+				}
+			}
+			$this->dataRecord['destination'] = implode(', ', $targets);
+		}
+
 		//* Check if there is no active mailbox with this address
 		$tmp = $app->db->queryOneRecord("SELECT count(mailuser_id) as number FROM mail_user WHERE postfix = 'y' AND email = ?", $this->dataRecord["source"]);
 		if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("duplicate_mailbox_txt")."<br>";
diff --git a/interface/web/mail/templates/mail_forward_edit.htm b/interface/web/mail/templates/mail_forward_edit.htm
index a5de2a00b73421a23ffb670af039169badba9867..128ad4cd7507ef820cd2b092db74e3f3d2180d02 100644
--- a/interface/web/mail/templates/mail_forward_edit.htm
+++ b/interface/web/mail/templates/mail_forward_edit.htm
@@ -11,7 +11,7 @@
 				</div>
             </div>
             <div class="form-group">
-                <label for="destination" class="col-sm-3 control-label">{tmpl_var name='destination_txt'}</label>
+                <label for="destination" class="col-sm-3 control-label"><em>*</em> {tmpl_var name='destination_txt'}</label>
                 <div class="col-sm-9"><textarea rows="10" cols="40" name="destination" id="destination" class="form-control">{tmpl_var name='destination'}</textarea></div>
             </div>
             <div class="form-group">
diff --git a/interface/web/mail/templates/mail_user_backup.htm b/interface/web/mail/templates/mail_user_backup.htm
index bbf1abaf87cc59005ac27627b00c6457409f93b1..059fda8bff135a6f8dc20fa9d50df59b02101330 100644
--- a/interface/web/mail/templates/mail_user_backup.htm
+++ b/interface/web/mail/templates/mail_user_backup.htm
@@ -1,10 +1,13 @@
 <tmpl_if name="config_error_msg">
-<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
-                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
-				<div>
-				<div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
-				</div>
-</div>
+<div class="alert alert-danger">
+    <p>
+      <tmpl_var name="configuration_error_txt">
+        <div>
+          <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
+          <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+        </div>
+    </p>
+  </div>
 </tmpl_if>
 
             <div class="form-group">
diff --git a/interface/web/mail/templates/mail_user_backup_list.htm b/interface/web/mail/templates/mail_user_backup_list.htm
index 87dc2a548fad9b582e4d09dcc4b8bc9c949b2665..95fec378f4507ba5588f29991918dbd7931c56d3 100644
--- a/interface/web/mail/templates/mail_user_backup_list.htm
+++ b/interface/web/mail/templates/mail_user_backup_list.htm
@@ -2,7 +2,16 @@
     <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
 </tmpl_if>
 <tmpl_if name="error">
-    <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
+  <div class='alert alert-danger clear'>
+    <div class='alert-label'>
+      <strong><tmpl_var name="error_txt"></strong>
+    </div>
+    <div class='alert-content'>
+      <ul style="list-style-type:none">
+        <tmpl_var name="error">
+      </ul>
+    </div>
+  </div>
 </tmpl_if>
 <h3><tmpl_var name="list_head_txt"></h3>
 
diff --git a/interface/web/mail/templates/xmpp_domain_edit_ssl.htm b/interface/web/mail/templates/xmpp_domain_edit_ssl.htm
index 0ef2e2c96266c80b33bcee4aec13b80aa8fb0c6c..848ed001e3ca60b2bf0b09590c8e1cfbb65b9768 100644
--- a/interface/web/mail/templates/xmpp_domain_edit_ssl.htm
+++ b/interface/web/mail/templates/xmpp_domain_edit_ssl.htm
@@ -1,10 +1,13 @@
 <tmpl_if name="config_error_msg">
-<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
-                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
-				<div>
-				<div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
-				</div>
-</div>
+<div class="alert alert-danger">
+    <p>
+      <tmpl_var name="configuration_error_txt">
+        <div>
+          <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
+          <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+        </div>
+    </p>
+  </div>
 </tmpl_if>
 
 
@@ -55,7 +58,7 @@
                     {tmpl_var name='ssl_action'}
                 </select></div>
             </div>
-        
+
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
         <input type="hidden" name="type" value="ssl">
@@ -77,11 +80,11 @@
 	$('#load_data').click(function(){
 		loadClientData();
 	});
-	
-	
+
+
 	function loadClientData() {
         var web_id = $("input[name=id]").val();
-        
+
         jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {'web_id': web_id, 'type': "getclientssldata"}, function(data) {
 			$('#ssl_organisation').val(data['company_name']);
 			$('#ssl_locality').val(data['city']);
diff --git a/interface/web/sites/templates/web_vhost_domain_advanced.htm b/interface/web/sites/templates/web_vhost_domain_advanced.htm
index 12b01c21b8aad9df8a03e248eab054d3824bda95..1da3a9b68b231421903ca6a2e732e206e7db145c 100644
--- a/interface/web/sites/templates/web_vhost_domain_advanced.htm
+++ b/interface/web/sites/templates/web_vhost_domain_advanced.htm
@@ -1,11 +1,13 @@
 <tmpl_if name="config_error_msg">
-  <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
-    <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
-    <div>
-      <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
-      <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+  <div class="alert alert-danger">
+      <p>
+        <tmpl_var name="configuration_error_txt">
+          <div>
+            <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
+            <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+          </div>
+      </p>
     </div>
-  </div>
 </tmpl_if>
 <input name="document_root" id="document_root" value="{tmpl_var name='document_root'}" size="30" maxlength="255" type="hidden" class="textInput" />
 <div class="form-group">
diff --git a/interface/web/sites/templates/web_vhost_domain_backup.htm b/interface/web/sites/templates/web_vhost_domain_backup.htm
index 222ae1e3c365af5463e556bbc6b552abf25d49a6..c87817008981d4374a9552dc166744d94ab9b3f2 100644
--- a/interface/web/sites/templates/web_vhost_domain_backup.htm
+++ b/interface/web/sites/templates/web_vhost_domain_backup.htm
@@ -1,11 +1,13 @@
 <tmpl_if name="config_error_msg">
-  <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
-    <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
-    <div>
-      <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
-      <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+  <div class="alert alert-danger">
+      <p>
+        <tmpl_var name="configuration_error_txt">
+          <div>
+            <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
+            <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+          </div>
+      </p>
     </div>
-  </div>
 </tmpl_if>
 
 
diff --git a/interface/web/sites/templates/web_vhost_domain_edit.htm b/interface/web/sites/templates/web_vhost_domain_edit.htm
index 5e6b86f8d3d564367e6313a24d027a2c4dd68bb2..843c0e564cb49ecd36d5d018b8dc03f1bddc3926 100644
--- a/interface/web/sites/templates/web_vhost_domain_edit.htm
+++ b/interface/web/sites/templates/web_vhost_domain_edit.htm
@@ -1,10 +1,13 @@
 <tmpl_if name="config_error_msg">
-<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
-                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
-				<div>
-				<div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
-				</div>
-</div>
+<div class="alert alert-danger">
+    <p>
+      <tmpl_var name="configuration_error_txt">
+        <div>
+          <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
+          <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+        </div>
+    </p>
+  </div>
 </tmpl_if>
 
 
diff --git a/interface/web/sites/templates/web_vhost_domain_redirect.htm b/interface/web/sites/templates/web_vhost_domain_redirect.htm
index 3326d5ec96592b324e20979d5552472f6c5e9bc3..597b427a4a0a2b029fab54620e5af57253a28772 100644
--- a/interface/web/sites/templates/web_vhost_domain_redirect.htm
+++ b/interface/web/sites/templates/web_vhost_domain_redirect.htm
@@ -1,14 +1,17 @@
 <tmpl_if name="config_error_msg">
-<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
-                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
-				<div>
-				<div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
-				</div>
-</div>
+<div class="alert alert-danger">
+    <p>
+      <tmpl_var name="configuration_error_txt">
+        <div>
+          <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
+          <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+        </div>
+    </p>
+  </div>
 </tmpl_if>
 
 
-        
+
             <div class="form-group">
                 <label for="redirect_type" class="col-sm-3 control-label">{tmpl_var name='redirect_type_txt'}</label>
                 <div class="col-sm-9"><select name="redirect_type" id="redirect_type" class="form-control">
@@ -48,14 +51,14 @@
     var webId = jQuery('input[name="id"]').val();
     var serverId;
     getServerId(webId);
-		
+
     function getServerId(webId){
         jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) {
             serverId = data.serverid;
             adjustForm(serverId);
         });
     }
-		
+
     function adjustForm(serverId){
         jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) {
             var selected = jQuery('#redirect_type').val();
@@ -77,7 +80,7 @@
                 jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled');
                 jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled');
 				//jQuery('#redirect_type option[value="proxy"]').attr('disabled','disabled');
-					
+
                 jQuery('#redirect_type option[value="last"]').hide();
                 jQuery('#redirect_type option[value="break"]').hide();
                 jQuery('#redirect_type option[value="redirect"]').hide();
@@ -88,5 +91,5 @@
             }
         });
     }
-			
+
 </script>
diff --git a/interface/web/sites/templates/web_vhost_domain_ssl.htm b/interface/web/sites/templates/web_vhost_domain_ssl.htm
index d4ec6749e27a602f6857f7da0e736b9364dcf127..686b5e67fd9925d0fd876978f76698d6abd59375 100644
--- a/interface/web/sites/templates/web_vhost_domain_ssl.htm
+++ b/interface/web/sites/templates/web_vhost_domain_ssl.htm
@@ -1,10 +1,13 @@
 <tmpl_if name="config_error_msg">
-<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
-                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
-				<div>
-				<div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
-				</div>
-</div>
+<div class="alert alert-danger">
+    <p>
+      <tmpl_var name="configuration_error_txt">
+        <div>
+          <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
+          <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+        </div>
+    </p>
+  </div>
 </tmpl_if>
 
 
diff --git a/interface/web/sites/templates/web_vhost_domain_stats.htm b/interface/web/sites/templates/web_vhost_domain_stats.htm
index 6ebf9a6613855ea51ad391698440805979655795..153262987cbc4446ddff51e7ac5f350e841b0bb0 100644
--- a/interface/web/sites/templates/web_vhost_domain_stats.htm
+++ b/interface/web/sites/templates/web_vhost_domain_stats.htm
@@ -1,10 +1,13 @@
 <tmpl_if name="config_error_msg">
-<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;">
-                <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p>
-				<div>
-				<div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
-				</div>
-</div>
+<div class="alert alert-danger">
+    <p>
+      <tmpl_var name="configuration_error_txt">
+        <div>
+          <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} :&nbsp;</div>
+          <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div>
+        </div>
+    </p>
+  </div>
 </tmpl_if>
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='stats_user_txt'}</label>
@@ -43,7 +46,7 @@
                     {tmpl_var name='stats_type'}
                 </select></div>
             </div>
-        
+
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
 
diff --git a/interface/web/themes/default/templates/error.tpl.htm b/interface/web/themes/default/templates/error.tpl.htm
index dbb730f59960def03ce504c79db2251f38b55909..20e5dfc2fa877f055423156fdd0379367cf0fb68 100644
--- a/interface/web/themes/default/templates/error.tpl.htm
+++ b/interface/web/themes/default/templates/error.tpl.htm
@@ -1,8 +1,8 @@
 <div class='alert alert-danger clear'>
   <div class='alert-label'><strong><tmpl_var name="error_txt"></strong></div>
   <div class='alert-content'>
-	<ol>
-		<li>###ERRORMSG###</li>
-	</ol>
+    <ul style="list-style-type:none">
+      <li>###ERRORMSG###</li>
+    </ul>
   </div>
 </div>
diff --git a/interface/web/themes/default/templates/tabbed_form.tpl.htm b/interface/web/themes/default/templates/tabbed_form.tpl.htm
index 5a500038898abf076ca364e51ce0f2db31f79dcd..b15bc6ac1ab431d1d414d5fb47d0ac45a9fb0009 100644
--- a/interface/web/themes/default/templates/tabbed_form.tpl.htm
+++ b/interface/web/themes/default/templates/tabbed_form.tpl.htm
@@ -1,36 +1,40 @@
 	<tmpl_if name="form_hint">
 		<div class='page-header'>
-		  <h1><tmpl_var name="form_hint"></h1>
+			<h1><tmpl_var name="form_hint"></h1>
 		</div>
 	</tmpl_if>
 	<tmpl_if name="msg">
-		<div class='alert alert-notification'>
-		  <tmpl_var name="msg">
-		</div>
+		<div class='alert alert-notification'><tmpl_var name="msg"></div>
 	</tmpl_if>
 	<tmpl_if name="error">
 		<div class='alert alert-danger clear'>
-		  <div class='alert-label'><strong><tmpl_var name="error_txt"></strong></div>
-		  <div class='alert-content'>
-			<ol><tmpl_var name="error"></ol>
-		  </div>
+			<div class='alert-label'><strong>
+					<tmpl_var name="error_txt">
+				</strong></div>
+			<div class='alert-content'>
+				<ul style="list-style-type:none">
+					<tmpl_var name="error">
+				</ul>
+			</div>
 		</div>
 	</tmpl_if>
-	
+
 	<!-- content in tabs -->
 	<div class='content-tab-wrapper'>
 		<!-- tabs -->
 		<ul class='nav nav-tabs'>
-		<tmpl_loop name="formTab">
-			<li<tmpl_if name="active"> class='active'</tmpl_if>>
-				<a href='#' onclick="return ISPConfig.changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')"><tmpl_var name='title'></a>
-			</li>
-        </tmpl_loop>
+			<tmpl_loop name="formTab">
+				<li<tmpl_if name="active"> class='active'</tmpl_if>>
+					<a href='#' onclick="return ISPConfig.changeTab('<tmpl_var name='name'>','<tmpl_var name='app_module'>/<tmpl_var name='form_action'>')">
+						<tmpl_var name='title'>
+					</a>
+					</li>
+			</tmpl_loop>
 		</ul>
 
 		<div id="tabbox_content" class="tab-content">
 			<div class='tab-pane active fade in'>
-			<tmpl_dyninclude name="content_tpl">
+				<tmpl_dyninclude name="content_tpl">
 			</div>
 		</div>
 
diff --git a/interface/web/tools/templates/dns_import_tupa.htm b/interface/web/tools/templates/dns_import_tupa.htm
index 4593fbb8002e71ca47c63ae50fce1a9afcb89191..bd2d07c479bef23629130ecd76449084acf4b07f 100644
--- a/interface/web/tools/templates/dns_import_tupa.htm
+++ b/interface/web/tools/templates/dns_import_tupa.htm
@@ -17,7 +17,7 @@
             <div class="form-group">
                 <label class="col-sm-3 control-label" for="dbpassword">Tupa database password</label>
                 <div class="col-sm-9"><input class="form-control" type="text" id="dbpassword" value="{tmpl_var name='dbpassword'}" name="dbpassword" /></div>
-            </div>                
+            </div>
             <div class="form-group">
                 <label class="col-sm-3 control-label" for="dboptions">Tupa database options</label>
                 <div class="col-sm-9" id="dboptions">
@@ -29,12 +29,21 @@
             <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
         </tmpl_if>
         <tmpl_if name="error">
-            <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
+          <div class='alert alert-danger clear'>
+            <div class='alert-label'>
+              <strong><tmpl_var name="error_txt"></strong>
+              </div>
+            <div class='alert-content'>
+              <ul style="list-style-type:none">
+                <tmpl_var name="error">
+              </ul>
+            </div>
+          </div>
         </tmpl_if>
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
 		<input type="hidden" name="start" value="1">
-            
+
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="Import" data-submit-form="pageForm" data-form-action="tools/dns_import_tupa.php">Start</button>
             <button class="btn btn-default formbutton-default" type="button" value="Cancel" data-load-content="tools/index.php">Cancel</button>
diff --git a/interface/web/tools/templates/import_ispconfig.htm b/interface/web/tools/templates/import_ispconfig.htm
index 9d845701f6dc403dd60725a9d2554f609b319fa2..71640f7b7ddcbf2add8ff8801fc80716c98d62ff 100644
--- a/interface/web/tools/templates/import_ispconfig.htm
+++ b/interface/web/tools/templates/import_ispconfig.htm
@@ -4,7 +4,6 @@
 <p><tmpl_var name="list_desc_txt"></p>
 
 <div class="panel panel_language_import" style="padding:20px;">
-  
     <div class="pnl_formsarea">
         <legend>{tmpl_var name="legend_txt"}</legend>
             <div class="form-group">
@@ -19,7 +18,7 @@
                 <label class="col-sm-3 control-label">Remote password</label>
                 <div class="col-sm-9"><input class="form-control" type="text" id="remote_password" value="{tmpl_var name='remote_password'}" name="remote_password" /></div>
             </div>
-        
+
     </div>
     <tmpl_if name="connected">
         <div class="pnl_formsarea">
@@ -66,17 +65,26 @@
                     <label class="col-sm-3 control-label">{tmpl_var name="import_aliasdomain_txt"}</label>
                     <div class="col-sm-9"><input class="form-control" type="checkbox" id="import_aliasdomain" value="1" name="import_aliasdomain" checked="checked" /></div>
                 </div>
-            
+
         </div>
     </tmpl_if>
-	 
+
     <tmpl_if name="msg">
         <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
     </tmpl_if>
     <tmpl_if name="error">
-        <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
+			<div class='alert alert-danger clear'>
+				<div class='alert-label'>
+					<strong><tmpl_var name="error_txt"></strong>
+					</div>
+				<div class='alert-content'>
+					<ul style="list-style-type:none">
+						<tmpl_var name="error">
+					</ul>
+				</div>
+			</div>
     </tmpl_if>
-	
+
     <input type="hidden" name="remote_session_id" value="{tmpl_var name='remote_session_id'}">
     <input type="hidden" name="connected" value="{tmpl_var name='connected'}">
     <tmpl_if name="connected">
@@ -90,4 +98,4 @@
             <button class="btn btn-default formbutton-default" type="button" value="Cancel" data-load-content="tools/index.php">{tmpl_var name="btn_cancel_txt"}</button>
         </div></div>
     </tmpl_if>
-  </div>
\ No newline at end of file
+  </div>
diff --git a/interface/web/tools/templates/import_plesk.htm b/interface/web/tools/templates/import_plesk.htm
index 645913abd64cad157d11a75d9e5d35e408fd9e7c..2a8110d6bf3af6a03d99cf1a5436483837f6241c 100644
--- a/interface/web/tools/templates/import_plesk.htm
+++ b/interface/web/tools/templates/import_plesk.htm
@@ -27,7 +27,7 @@
                 <label class="col-sm-3 control-label">Maildir content backup file (on this server, optional)</label>
                 <div class="col-sm-9"><input class="form-control" type="text" id="mailcontent" value="{tmpl_var name='mailcontent'}" name="mailcontent" /></div>
             </div>
-                
+
             <div class="form-group">
                 <label class="col-sm-3 control-label">Import all data (that can be imported)</label>
                 <div class="col-sm-9"><input class="form-control" type="checkbox" id="start" value="1" name="start" checked/></div>
@@ -36,18 +36,27 @@
                 <label class="col-sm-3 control-label">Import database contents (make sure the database user has the rights to do so)</label>
                 <div class="col-sm-9"><input class="form-control" type="checkbox" id="dbdata" value="1" name="dbdata" checked/></div>
             </div>
-        
+
 
         <tmpl_if name="msg">
             <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
         </tmpl_if>
         <tmpl_if name="error">
-            <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
+          <div class='alert alert-danger clear'>
+            <div class='alert-label'>
+              <strong><tmpl_var name="error_txt"></strong>
+              </div>
+            <div class='alert-content'>
+              <ul style="list-style-type:none">
+                <tmpl_var name="error">
+              </ul>
+            </div>
+          </div>
         </tmpl_if>
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
-            
+
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="Import" data-submit-form="pageForm" data-form-action="tools/import_plesk.php">Start</button>
             <button class="btn btn-default formbutton-default" type="button" value="Cancel" data-load-content="tools/index.php">Cancel</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/interface/web/tools/templates/import_vpopmail.htm b/interface/web/tools/templates/import_vpopmail.htm
index 7876875b9828e9bc9d1f2be90b75bf3449f268c0..86bf46891aabf19e9aabd73744a8f2c69a0e7474 100644
--- a/interface/web/tools/templates/import_vpopmail.htm
+++ b/interface/web/tools/templates/import_vpopmail.htm
@@ -4,7 +4,7 @@
 <p><tmpl_var name="list_desc_txt"></p>
 
 <div class="panel panel_language_import">
-  
+
     <div class="pnl_formsarea">
         <legend>{tmpl_var name="legend_txt"}</legend>
             <div class="form-group">
@@ -34,14 +34,23 @@
                 <div class="col-sm-9"><input class="form-control" type="text" id="local_server_id" value="{tmpl_var name='local_server_id'}" name="local_server_id" /></div>
             </div>
     </div>
-	 
+
     <tmpl_if name="msg">
         <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
     </tmpl_if>
     <tmpl_if name="error">
-        <div id="errorMsg"><h3><tmpl_var name="error_txt"></h3><ol><tmpl_var name="error"></ol></div>
+			<div class='alert alert-danger clear'>
+				<div class='alert-label'>
+					<strong><tmpl_var name="error_txt"></strong>
+					</div>
+				<div class='alert-content'>
+					<ul style="list-style-type:none">
+						<tmpl_var name="error">
+					</ul>
+				</div>
+			</div>
     </tmpl_if>
-	
+
     <input type="hidden" name="remote_session_id" value="{tmpl_var name='remote_session_id'}">
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="Import" data-submit-form="pageForm" data-form-action="tools/import_vpopmail.php">{tmpl_var name="btn_start_txt"}</button>
diff --git a/server/conf/apache_ispconfig.conf.master b/server/conf/apache_ispconfig.conf.master
index e7058cd439a7672c47596c1d4e11571bbe11886e..831a18a0e1f4ed61ff316ceb7f0fcab89de8bcbc 100644
--- a/server/conf/apache_ispconfig.conf.master
+++ b/server/conf/apache_ispconfig.conf.master
@@ -127,19 +127,6 @@ CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m
 
 Alias /awstats-icon "/usr/share/awstats/icon"
 
-Alias /.well-known/acme-challenge /usr/local/ispconfig/interface/acme/.well-known/acme-challenge
-<Directory /usr/local/ispconfig/interface/acme/.well-known/acme-challenge>
-		<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
-		Require all granted
-		<tmpl_else>
-        Order allow,deny
-        Allow from all
-		</tmpl_if>
-        <IfModule mpm_itk_module>
-           AssignUserId ispconfig ispconfig
-        </IfModule>
-</Directory>
-
 NameVirtualHost *:80
 NameVirtualHost *:443
 <tmpl_loop name="ip_adresses">
diff --git a/server/conf/nginx_apps.vhost.master b/server/conf/nginx_apps.vhost.master
index 0c82c4631e0a41d0888a811b9f3097db63fd326a..b91d1a16c5f05344b0d6c863e28c4043334d5414 100644
--- a/server/conf/nginx_apps.vhost.master
+++ b/server/conf/nginx_apps.vhost.master
@@ -1,5 +1,13 @@
 server {
-        listen {apps_vhost_ip}{apps_vhost_port};
+        listen {apps_vhost_ip}{apps_vhost_port} {ssl_on};
+        listen [::]:{apps_vhost_port} {ssl_on} ipv6only=on;
+
+        {ssl_comment}ssl_protocols TLSv1.2;
+        {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt;
+        {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key;
+
+        # redirect to https if accessed with http
+        {ssl_comment}error_page 497 https://$host:{vhost_port}$request_uri;
 
         server_name {apps_vhost_servername};
 
@@ -12,7 +20,7 @@ server {
         }
 
         # serve static files directly
-        location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
+        location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
                access_log        off;
         }
 
@@ -165,6 +173,7 @@ server {
                fastcgi_param   CONTENT_TYPE            $content_type;
                fastcgi_param   CONTENT_LENGTH          $content_length;
 
+               fastcgi_param   SCRIPT_FILENAME         $request_filename;
                fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
                fastcgi_param   REQUEST_URI             $request_uri;
                fastcgi_param   DOCUMENT_URI            $document_uri;
@@ -223,5 +232,4 @@ server {
                        {use_rspamd}alias /usr/share/rspamd/www/$1;
                 {use_rspamd}}
         {use_rspamd}}
-
 }
diff --git a/server/conf/sieve_filter.master b/server/conf/sieve_filter.master
index b5dedebf293706ea67fd7a2aff107186663ccbb4..51d8eeee149193a99fc3d0a7d51f5d17208d0c93 100644
--- a/server/conf/sieve_filter.master
+++ b/server/conf/sieve_filter.master
@@ -29,6 +29,8 @@ redirect "<tmpl_var name='address'>";
 # You can create and activate a per-user sieve script (manually or via managesieve),
 # which will execute before this.
 
+require ["fileinto", "mailbox", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"];
+
 <tmpl_if name="move_junk" op="==" value="a">
 # Move spam to spam folder
 if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") {
diff --git a/server/lib/classes/cron.d/100-monitor_database_size.inc.php b/server/lib/classes/cron.d/100-monitor_database_size.inc.php
index 97f12253717980eb1bdbdded76b211d2b7a64777..b5025ca4ca7db53515f5ab7c42cb008972ee1312 100644
--- a/server/lib/classes/cron.d/100-monitor_database_size.inc.php
+++ b/server/lib/classes/cron.d/100-monitor_database_size.inc.php
@@ -95,12 +95,12 @@ class cronjob_monitor_database_size extends cronjob {
 				if(!is_numeric($quota)) continue;
 				
 				if($quota < 1 || $quota > $data[$i]['size']) {
-					print 'database ' . $rec['database_name'] . ' size does not exceed quota: ' . ($quota < 1 ? 'unlimited' : $quota) . ' (quota) > ' . $data[$i]['size'] . " (used)\n";
+					//print 'database ' . $rec['database_name'] . ' size does not exceed quota: ' . ($quota < 1 ? 'unlimited' : $quota) . ' (quota) > ' . $data[$i]['size'] . " (used)\n";
 					if($rec['quota_exceeded'] == 'y') {
 						$app->dbmaster->datalogUpdate('web_database', array('quota_exceeded' => 'n'), 'database_id', $rec['database_id']);
 					}
 				} elseif($rec['quota_exceeded'] == 'n') {
-					print 'database ' . $rec['database_name'] . ' size exceeds quota: ' . $quota . ' (quota) < ' . $data[$i]['size'] . " (used)\n";
+					//print 'database ' . $rec['database_name'] . ' size exceeds quota: ' . $quota . ' (quota) < ' . $data[$i]['size'] . " (used)\n";
 					$app->dbmaster->datalogUpdate('web_database', array('quota_exceeded' => 'y'), 'database_id', $rec['database_id']);
 				}
 			}
diff --git a/server/lib/classes/cron.d/100-monitor_hd_quota.inc.php b/server/lib/classes/cron.d/100-monitor_hd_quota.inc.php
index a4971eb532df3a99c231c90d2e3952b334bed323..33c7e59589a0b053f9bb3317d103ed263fd25c07 100644
--- a/server/lib/classes/cron.d/100-monitor_hd_quota.inc.php
+++ b/server/lib/classes/cron.d/100-monitor_hd_quota.inc.php
@@ -112,13 +112,13 @@ class cronjob_monitor_hd_quota extends cronjob {
 				$groupname = $s[0];
 				if (substr($groupname, 0, 6) == 'client') {
 					if (isset($data['group'][$groupname])) {
-						$data['group'][$groupname]['used'] += $s[1];
-						$data['group'][$groupname]['soft'] += $s[2];
-						$data['group'][$groupname]['hard'] += $s[3];
+						$data['group'][$groupname]['used'] += $s[2];
+						$data['group'][$groupname]['soft'] += $s[3];
+						$data['group'][$groupname]['hard'] += $s[4];
 					} else {
-						$data['group'][$groupname]['used'] = $s[1];
-						$data['group'][$groupname]['soft'] = $s[2];
-						$data['group'][$groupname]['hard'] = $s[3];
+						$data['group'][$groupname]['used'] = $s[2];
+						$data['group'][$groupname]['soft'] = $s[3];
+						$data['group'][$groupname]['hard'] = $s[4];
 					}
 				}
 			}
diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php
index b4a6d2e86500c915886f95a7a4580f86b82f56c0..31e36836d55580d2bae6dcda9f22a7fdeed3c886 100644
--- a/server/lib/classes/monitor_tools.inc.php
+++ b/server/lib/classes/monitor_tools.inc.php
@@ -561,15 +561,30 @@ class monitor_tools {
 			}
 			break;
 		case 'log_letsencrypt':
-				if ($dist == 'debian') {
-					$logfile = '/var/log/letsencrypt/letsencrypt.log';
-				} elseif ($dist == 'redhat') {
-					$logfile = '/var/log/letsencrypt/letsencrypt.log';
-				} elseif ($dist == 'suse') {
-					$logfile = '/var/log/letsencrypt/letsencrypt.log';
-				} elseif ($dist == 'gentoo') {
-					$logfile = '/var/log/letsencrypt/letsencrypt.log';
+				$check_files = array();
+				if(file_exists($conf['ispconfig_log_dir'].'/acme.log')) {
+					$check_files[] = $conf['ispconfig_log_dir'].'/acme.log';
 				}
+				if(file_exists('/root/.acme.sh/acme.sh') && file_exists('/root/.acme.sh/acme.sh.log')) {
+					$check_files[] = '/root/.acme.sh/acme.sh.log';
+				}
+				if(file_exists('/usr/local/ispconfig/server/scripts/acme.sh') && file_exists('/usr/local/ispconfig/server/scripts/acme.sh.log')) {
+					$check_files[] = '/usr/local/ispconfig/server/scripts/acme.sh.log';
+				}
+				if(file_exists('/var/log/letsencrypt/letsencrypt.log')) {
+					$check_files[] = '/var/log/letsencrypt/letsencrypt.log';
+				}
+				$logfile = '';
+				$newest = 0;
+
+				foreach($check_files as $file) {
+					$mtime = filemtime($file);
+					if($mtime > $newest) {
+						$newest = $mtime;
+						$logfile = $file;
+					}
+				}
+				unset($check_files);
 			break;
 		case 'log_freshclam':
 			if ($dist == 'debian') {
diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index 738c3acadd3f9079e21601488e89deafcb8a41c2..32afb9943ccdc5fdbfc9f1f2f618db6e046beae0 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -2527,13 +2527,17 @@ else { $app->log("update_jailkit_chroot: NOT searching for hardlinks in $jail_di
 		$cmd = 'jk_update --jail=?' . $jk_update_args . $skips;
 		$this->exec_safe($cmd, $home_dir);
 $app->log('jk_update returned: '.print_r($this->_last_exec_out, true), LOGLEVEL_DEBUG);
+		# handle jk_update output
 		foreach ($this->_last_exec_out as $line) {
+			# jk_update sample output:
+			# skip /var/www/clients/client1/web1/opt/
 			if (substr( $line, 0, 4 ) === "skip") {
 				continue;
 			}
-			if (preg_match('/^(WARNING|ERROR)/', $line, $matches)) {
-				$app->log("jk_update: $line", LOGLEVEL_DEBUG);
-			} elseif (preg_match('@^(?: [^ ]+){6}(.+)'.preg_quote($home_dir, '@').'$@', $line, $matches)) {
+
+			# jk_update sample output:
+			# ERROR: failed to remove deprecated directory /var/www/clients/client1/web10/usr/lib/x86_64-linux-gnu/libGeoIP.so.1.6.9
+			if (preg_match('@^(?:[^ ]+){6}(?:.+)('.preg_quote($home_dir, '@').'.+)@', $line, $matches)) {
 				# remove deprecated files that jk_update failed to remove
 				if (is_file($matches[1])) {
 $app->log("update_jailkit_chroot: removing deprecated file which jk_update failed to remove:  ".$matches[1], LOGLEVEL_DEBUG);
@@ -2541,11 +2545,19 @@ $app->log("update_jailkit_chroot: removing deprecated file which jk_update faile
 				} elseif (is_dir($matches[1])) {
 $app->log("update_jailkit_chroot: removing deprecated directory which jk_update failed to remove:  ".$matches[1], LOGLEVEL_DEBUG);
 					$this->rmdir($matches[1], true);
+				} else {
+					# unhandled error
+					//$app->log("jk_update error for jail $home_dir:  ".$matches[1], LOGLEVEL_DEBUG);
+					// at least for 3.2 beta, lets gather some of this info:
+					$app->log("jk_update error for jail $home_dir, feel free to pass to ispconfig developers:  ".print_r( $matches, true), LOGLEVEL_DEBUG);
 				}
-               			# unhandled error
-				//$app->log("jk_update error for jail $home_dir:  ".$matches[1], LOGLEVEL_DEBUG);
-				// at least for 3.2 beta, lets gather some of this info:
-				$app->log("jk_update error for jail $home_dir, feel free to pass to ispconfig developers:  ".print_r( $matches, true), LOGLEVEL_DEBUG);
+
+			# any other ERROR or WARNING
+			# sample so far:
+			# ERROR: /usr/bin/nano does not exist
+			# WARNING: section [whatever] does not exist in /etc/jailkit/jk_init.ini
+			} elseif (preg_match('/^(WARNING|ERROR)/', $line, $matches)) {
+				$app->log("jk_update: $line", LOGLEVEL_DEBUG);
 			}
 		}
 
diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php
index 726efe5118a28ddf2138d7728c9bf86c4da22aeb..36fc55b0965b6fdbc9431722cbd668bbbac47c50 100644
--- a/server/plugins-available/mysql_clientdb_plugin.inc.php
+++ b/server/plugins-available/mysql_clientdb_plugin.inc.php
@@ -137,7 +137,7 @@ class mysql_clientdb_plugin {
 			if($user_access_mode == 'r') $grants = 'SELECT';
 			elseif($user_access_mode == 'rd') $grants = 'SELECT, DELETE, ALTER, DROP';
 
-			$database_name = str_replace('_', '\\_', $link->escape_string($database_name));
+			$database_name = $link->escape_string($database_name);
 
 			if($action == 'GRANT') {
 				if($user_access_mode == 'r' || $user_access_mode == 'rd') {
diff --git a/server/plugins-available/powerdns_plugin.inc.php b/server/plugins-available/powerdns_plugin.inc.php
index 7ab23ec5494cd57d6f877e8a1afcbd864f48926f..82240f106dd157ffac5cff394752d787d94b4276 100644
--- a/server/plugins-available/powerdns_plugin.inc.php
+++ b/server/plugins-available/powerdns_plugin.inc.php
@@ -449,7 +449,7 @@ class powerdns_plugin {
 
 	function notifySlave($data) {
 		global $app;
-		
+
 		$pdns_control = $this->find_pdns_control();
 		if ( $pdns_control != false ) {
 			$app->system->exec_safe($pdns_control . ' notify ?', rtrim($data["new"]["origin"],"."));
@@ -458,7 +458,7 @@ class powerdns_plugin {
 
 	function fetchFromMaster($data) {
 		global $app;
-		
+
 		$pdns_control = $this->find_pdns_control();
 		if ( $pdns_control != false ) {
 			$app->system->exec_safe($pdns_control . ' retrieve ?', rtrim($data["new"]["origin"],"."));
@@ -502,7 +502,7 @@ class powerdns_plugin {
 		}
 
 		// If DNSSEC is wanted, enable it
-		if ($data['new']['dnssec_wanted'] === 'Y' && $data['old']['dnssec_wanted'] === 'N') {
+		if ($data['new']['dnssec_wanted'] === 'Y' && (is_null($data['old']['dnssec_wanted']) || $data['old']['dnssec_wanted'] === 'N')) {
 			$this->soa_dnssec_create($data);
 		}
 	}