diff --git a/install/sql/incremental/upd_0036.sql b/install/sql/incremental/upd_0036.sql
new file mode 100644
index 0000000000000000000000000000000000000000..db0d59d5e6cead499601ccb106d2229797b5fc32
--- /dev/null
+++ b/install/sql/incremental/upd_0036.sql
@@ -0,0 +1,5 @@
+-- --------------------------------------------------------
+
+ALTER TABLE  `web_domain` ADD  `perl` enum('n','y') NOT NULL default 'n' AFTER  `python`;
+
+
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index a7ac059a32c03b11f8670228fdfb58184ec832c3..88a68846e945e8d68ecc1ac2db7ab054bf652297 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1643,6 +1643,7 @@ CREATE TABLE `web_domain` (
   `php` varchar(32) NOT NULL default 'y',
   `ruby` enum('n','y') NOT NULL default 'n',
   `python` enum('n','y') NOT NULL default 'n',
+  `perl` enum('n','y') NOT NULL default 'n',
   `redirect_type` varchar(255) default NULL,
   `redirect_path` varchar(255) default NULL,
   `seo_redirect` varchar(255) default NULL,
diff --git a/interface/web/index.php b/interface/web/index.php
index 5122d2d07e48218f8e1ceb09ff6934b7e70595b0..b131396cefd278356d747edf4d680b02855e398e 100644
--- a/interface/web/index.php
+++ b/interface/web/index.php
@@ -31,6 +31,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 require_once('../lib/config.inc.php');
 require_once('../lib/app.inc.php');
 
+if(!isset($_SESSION['s']['module']['name'])) $_SESSION['s']['module']['name'] = 'login';
+
 $app->uses('tpl');
 $app->tpl->newTemplate('main.tpl.htm');
 
diff --git a/interface/web/sites/form/web_domain.tform.php b/interface/web/sites/form/web_domain.tform.php
index 1682f6b6f2c3089b51572ccae938fccf9f851a72..ef9470e37ab563cd4b74645903b3d5180edf4836 100644
--- a/interface/web/sites/form/web_domain.tform.php
+++ b/interface/web/sites/form/web_domain.tform.php
@@ -230,6 +230,12 @@ $form["tabs"]['domain'] = array (
 									 ),*/
 			'value'		=> ''
 		),
+		'perl' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'CHECKBOX',
+			'default'	=> 'n',
+			'value'		=> array(0 => 'n',1 => 'y')
+		),
 		'ruby' => array (
 			'datatype'	=> 'VARCHAR',
 			'formtype'	=> 'CHECKBOX',
diff --git a/interface/web/sites/lib/lang/de_web_domain.lng b/interface/web/sites/lib/lang/de_web_domain.lng
index 00d262afc652e4a6a48a6bca8cc578078e94df7d..e969e171978af60fa114105bdaca33b80943ea4d 100644
--- a/interface/web/sites/lib/lang/de_web_domain.lng
+++ b/interface/web/sites/lib/lang/de_web_domain.lng
@@ -80,6 +80,7 @@ $wb['php_fpm_use_socket_txt'] = 'Benutze Socket für PHP-FPM';
 $wb['ipv6_address_txt'] = 'IPv6-Adresse';
 $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
 $wb['python_txt'] = 'Python';
+$wb['perl_txt'] = 'Perl';
 $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children';
 $wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers';
 $wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers';
diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng
index 4968cfd0f401576225682297de65788d70c20ad7..ba17f7e05d87f6e21d0076f1074ceecfe5257403 100644
--- a/interface/web/sites/lib/lang/en_web_domain.lng
+++ b/interface/web/sites/lib/lang/en_web_domain.lng
@@ -81,6 +81,7 @@ $wb["www_to_non_www_txt"] = 'www -> non-www';
 $wb["php_fpm_use_socket_txt"] = 'Use Socket For PHP-FPM';
 $wb["error_no_sni_txt"] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.';
 $wb["python_txt"] = 'Python';
+$wb["perl_txt"] = 'Perl';
 $wb["pm_max_children_txt"] = 'PHP-FPM pm.max_children';
 $wb["pm_start_servers_txt"] = 'PHP-FPM pm.start_servers';
 $wb["pm_min_spare_servers_txt"] = 'PHP-FPM pm.min_spare_servers';
diff --git a/interface/web/sites/templates/web_domain_edit.htm b/interface/web/sites/templates/web_domain_edit.htm
index 496ddec53248212edf019ce889671d161db41385..96319c9ca9ff84022f1f6c0860b9a3aa07b76eef 100644
--- a/interface/web/sites/templates/web_domain_edit.htm
+++ b/interface/web/sites/templates/web_domain_edit.htm
@@ -79,6 +79,12 @@
                     {tmpl_var name='ssi'}
                 </div>
             </div>
+            <div class="ctrlHolder apache">
+                <p class="label">{tmpl_var name='perl_txt'}</p>
+                <div class="multiField">
+                    {tmpl_var name='perl'}
+                </div>
+            </div>
             <div class="ctrlHolder apache">
                 <p class="label">{tmpl_var name='ruby_txt'}</p>
                 <div class="multiField">
diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index 4b116403878f80879383b35c5e8b92ee851016ce..6c9513a567e4efbbe16fd44d1e84f87c67af3ebf 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -109,6 +109,19 @@
 		</IfModule>
 </tmpl_if>
 
+<tmpl_if name='perl' op='==' value='y'>
+		<IfModule mod_perl.c>
+			PerlModule ModPerl::Registry
+			PerlModule Apache2::Reload
+			<Directory {tmpl_var name='web_document_root_www'}>
+				SetHandler perl-script
+				PerlResponseHandler ModPerl::Registry
+				PerlOptions +ParseHeaders
+				Options +ExecCGI
+			</Directory>
+		</IfModule>
+</tmpl_if>
+
 <tmpl_if name='python' op='==' value='y'>
 		<IfModule mod_python.c>
 			<Directory {tmpl_var name='web_document_root_www'}>