diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index d55a440e54faf87b433e22908fcb2018b5dded3f..d3796714996d2ae5453432bb633d05b08a224f5b 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -590,6 +590,27 @@ CREATE TABLE `spamfilter_wblist` (
 -- 
 
 
+-- --------------------------------------------------------
+
+-- 
+-- Tabellenstruktur für Tabelle `support_message`
+-- 
+
+CREATE TABLE `support_message` (
+  `support_message_id` bigint(20) NOT NULL auto_increment,
+  `sys_userid` int(11) NOT NULL default '0',
+  `sys_groupid` int(11) NOT NULL default '0',
+  `sys_perm_user` varchar(5) default NULL,
+  `sys_perm_group` varchar(5) default NULL,
+  `sys_perm_other` varchar(5) default NULL,
+  `recipient_id` int(11) NOT NULL default '0',
+  `sender_id` int(11) NOT NULL default '0',
+  `subject` varchar(255) default NULL,
+  `message` varchar(255) default NULL,
+  `tstamp` int(11) NOT NULL default '1187707778',
+  PRIMARY KEY  (`support_message_id`)
+) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
+
 -- --------------------------------------------------------
 
 -- 
diff --git a/interface/web/help/form/support_message.tform.php b/interface/web/help/form/support_message.tform.php
new file mode 100644
index 0000000000000000000000000000000000000000..092150753a7915f0e95c8c6a1ce30fddb472e9d7
--- /dev/null
+++ b/interface/web/help/form/support_message.tform.php
@@ -0,0 +1,120 @@
+<?php
+
+//* Title of the form
+$form["title"] 			= "Support Message";
+
+//* Description of the form (optional)
+$form["description"] 	= "";
+
+//* Name of the form. The name shall not contain spaces or foreign characters
+$form["name"] 			= "support_message";
+
+//* The file that is used to call the form in the browser
+$form["action"]			= "support_message_edit.php";
+
+//* The name of the database table that shall be used to store the data
+$form["db_table"]		= "support_message";
+
+//* The name of the database table index field, this field must be a numeric auto increment column
+$form["db_table_idx"]	= "support_message_id";
+
+//* Shall changes to this table be stored in the database history (sys_datalog) table.
+//* This should be set to "yes" for all tables that store configuration information.
+$form["db_history"]		= "no"; // yes / no
+
+//* The name of the tab that is shown when the form is opened
+$form["tab_default"]	= "message";
+
+//* The name of the default list file of this form
+$form["list_default"]	= "support_message_list.php";
+
+//* Use the internal authentication system for this table. This should
+//* be set to yes in most cases
+$form["auth"]			= 'yes'; // yes / no
+
+//* Authentocation presets. The defaults below does not need to be changed in most cases.
+$form["auth_preset"]["userid"]  = 0; // 0 = id of the user, > 0 id must match with id of current user
+$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
+$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
+$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
+
+
+//* Begin of the form definition of the first tab. The name of the tab is called "message". We refer
+//* to this name in the $form["tab_default"] setting above.
+$form["tabs"]['message'] = array (
+	'title' 	=> "Message", // Title of the Tab
+	'width' 	=> 100, // Tab width
+	'template' 	=> "templates/support_message_edit.htm", // Template file name
+	'fields' 	=> array (
+	##################################
+	# Begin Datatable fields
+	##################################
+		'recipient_id' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'SELECT',
+			'default'	=> '',
+			'datasource'	=> array ( 	'type'			=> 'SQL',
+										'querystring' 	=> 'SELECT userid,username FROM sys_user WHERE {AUTHSQL} ORDER BY username',
+										'keyfield'		=> 'userid',
+										'valuefield'	=> 'username'
+									 ),
+			'validators'	=> array ( 	0 => array (	'type'	=> 'ISINT',
+														'errmsg'=> 'recipient_id_is_not_integer'),
+									),
+			'value'		=> ''
+		),
+		'sender_id' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'SELECT',
+			'default'	=> '',
+			'datasource'	=> array ( 	'type'			=> 'SQL',
+										'querystring' 	=> 'SELECT userid,username FROM sys_user WHERE {AUTHSQL} ORDER BY username',
+										'keyfield'		=> 'userid',
+										'valuefield'	=> 'username'
+									 ),
+			'validators'	=> array ( 	0 => array (	'type'	=> 'ISINT',
+														'errmsg'=> 'recipient_id_is_not_integer'),
+									),
+			'value'		=> ''
+		),
+		'subject' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXT',
+			'validators'	=> array ( 	0 => array (	'type'	=> 'NOTEMPTY',
+														'errmsg'=> 'subject_is_empty'),
+									),
+			'default'	=> '',
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '255'
+		),
+		'message' => array (
+			'datatype'	=> 'VARCHAR',
+			'formtype'	=> 'TEXTAREA',
+			'validators'	=> array ( 	0 => array (	'type'	=> 'NOTEMPTY',
+														'errmsg'=> 'message_is_empty'),
+									),
+			'default'	=> '',
+			'value'		=> '',
+			'cols'		=> '30',
+			'rows'		=> '10',
+			'maxlength'	=> '255'
+		),
+		'tstamp' => array (
+			'datatype'	=> 'INTEGER',
+			'formtype'	=> 'TEXT',
+			'default'	=> time(),
+			'value'		=> '',
+			'width'		=> '30',
+			'maxlength'	=> '30'
+		),
+	##################################
+	# ENDE Datatable fields
+	##################################
+	)
+);
+
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/help/lib/admin.conf.php b/interface/web/help/lib/admin.conf.php
new file mode 100644
index 0000000000000000000000000000000000000000..ea21b3e5ebb21400853eebb9209a64554dcc2827
--- /dev/null
+++ b/interface/web/help/lib/admin.conf.php
@@ -0,0 +1,8 @@
+<?php
+
+/*
+	The admin.conf.php file contains menu definitions to be displayed in the administration modile.
+*/
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/help/lib/lang/en_support_message.lng b/interface/web/help/lib/lang/en_support_message.lng
new file mode 100644
index 0000000000000000000000000000000000000000..be03ebdb56c39ae39b499bfbba5833dcefa49ea4
--- /dev/null
+++ b/interface/web/help/lib/lang/en_support_message.lng
@@ -0,0 +1,9 @@
+<?php
+$wb["recipient_id_txt"] = 'recipient_id';
+$wb["sender_id_txt"] = 'sender_id';
+$wb["subject_txt"] = 'subject';
+$wb["message_txt"] = 'message';
+$wb["tstamp_txt"] = 'tstamp';
+$wb["btn_save_txt"] = 'Save';
+$wb["btn_cancel_txt"] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/help/lib/lang/en_support_message_list.lng b/interface/web/help/lib/lang/en_support_message_list.lng
new file mode 100644
index 0000000000000000000000000000000000000000..73a1fdab6a5bf0f387a94e2372fdaf2971c8609f
--- /dev/null
+++ b/interface/web/help/lib/lang/en_support_message_list.lng
@@ -0,0 +1,11 @@
+<?php
+$wb["list_head_txt"] = 'support_message';
+$wb["sender_id_txt"] = 'sender_id';
+$wb["subject_txt"] = 'subject';
+$wb["page_txt"] = 'Page';
+$wb["page_of_txt"] = 'of';
+$wb["page_next_txt"] = 'Next';
+$wb["page_back_txt"] = 'Back';
+$wb["delete_txt"] = 'Delete';
+$wb["filter_txt"] = 'Filter';
+?>
\ No newline at end of file
diff --git a/interface/web/help/lib/module.conf.php b/interface/web/help/lib/module.conf.php
new file mode 100644
index 0000000000000000000000000000000000000000..c6cdfd74c85161fd8179322e0e7ddedc6de12371
--- /dev/null
+++ b/interface/web/help/lib/module.conf.php
@@ -0,0 +1,43 @@
+<?php
+
+//* Name of the module. The module name must match the name of the module directory. The module name may not contain spaces.
+$module["name"]      = "help";
+
+//* Title of the module. The title is dispalayed in the top navigation.
+$module["title"]     = "Help";
+
+//* The template file of the module. This is always module.tpl.htm if you do not have any special requirements like a 3 column layout.
+$module["template"]  = "module.tpl.htm";
+
+//* The page that is displayed when the module is loaded. the path must is relative to the web directory
+$module["startpage"] = "help/index.php";
+
+//* The width of the tab. Normally you should leave this empty and let the browser define the width automatically.
+$module["tab_width"] = '';
+
+/*
+------------------------------------------
+- Menu Definition
+------------------------------------------	
+*/
+
+//* make sure that the items array is empty
+$items = array();
+
+//* Add a menu item with the label "Send message"
+$items[] = array( 'title'   => 'Send message',
+                  'target'  => 'content',
+                  'link'    => 'help/support_message_edit.php');
+
+//* Add a menu item with the label "View messages"
+$items[] = array( 'title'   => 'View messages',
+                  'target'  => 'content',
+                  'link'    => 'help/support_message_list.php');
+
+
+//* Add the menu items defined above to a menu section labeled 'Support'
+$module["nav"][] = array( 'title' => 'Support',
+                          'open'  => 1,
+                          'items'	=> $items);
+
+?>
\ No newline at end of file
diff --git a/interface/web/help/list/support_message.list.php b/interface/web/help/list/support_message.list.php
new file mode 100644
index 0000000000000000000000000000000000000000..368076db8ace6c129c8592c01e214498955510f3
--- /dev/null
+++ b/interface/web/help/list/support_message.list.php
@@ -0,0 +1,62 @@
+<?php
+
+//* Name of the list
+$liste["name"] 				= "support_message";
+
+//* Database table
+$liste["table"] 			= "support_message";
+
+//* Index index field of the database table
+$liste["table_idx"]			= "support_message_id";
+
+//* Search Field Prefix
+$liste["search_prefix"] 	= "search_";
+
+//* Records per page
+$liste["records_per_page"] 	= 15;
+
+//* Script File of the list
+$liste["file"]				= "support_message_list.php";
+
+//* Script file of the edit form
+$liste["edit_file"]			= "support_message_edit.php";
+
+//* Script File of the delete script
+$liste["delete_file"]		= "support_message_del.php";
+
+//* Paging Template
+$liste["paging_tpl"]		= "templates/paging.tpl.htm";
+
+//* Enable auth
+$liste["auth"]				= "yes";
+
+
+/*****************************************************
+* Search fields
+*****************************************************/
+
+$liste["item"][] = array(	'field'		=> "sender_id",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "SELECT",
+							'op'		=> "=",
+							'prefix'	=> "",
+							'suffix'	=> "",
+							'width'		=> "",
+							'datasource'=> array ( 	'type' => 'SQL',
+										'querystring' 	=> 'SELECT userid,username FROM sys_user WHERE {AUTHSQL} ORDER BY username',
+										'keyfield'		=> 'userid',
+										'valuefield'	=> 'username'
+									 ),
+							'value'		=> "");
+
+$liste["item"][] = array(	'field'		=> "subject",
+							'datatype'	=> "VARCHAR",
+							'formtype'	=> "TEXT",
+							'op'		=> "like",
+							'prefix'	=> "%",
+							'suffix'	=> "%",
+							'width'		=> "",
+							'value'		=> "");
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/help/support_message_del.php b/interface/web/help/support_message_del.php
new file mode 100644
index 0000000000000000000000000000000000000000..1ef035eef2f9bbbfade7080d25051d9379e4baa5
--- /dev/null
+++ b/interface/web/help/support_message_del.php
@@ -0,0 +1,51 @@
+<?php
+
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+
+//* From and List definition files
+$list_def_file = "list/support_message.list.php";
+$tform_def_file = "form/support_message.tform.php";
+
+//* Include the base libraries
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+// Check module permissions
+if(!stristr($_SESSION["s"]["user"]["modules"],'help')) {
+	header("Location: ../index.php");
+	exit;
+}
+
+//* Load the form
+$app->uses("tform_actions");
+$app->tform_actions->onDelete();
+
+?>
\ No newline at end of file
diff --git a/interface/web/help/support_message_edit.php b/interface/web/help/support_message_edit.php
new file mode 100644
index 0000000000000000000000000000000000000000..f97bb88dc0078e77d62789a5b9ade318fecff00a
--- /dev/null
+++ b/interface/web/help/support_message_edit.php
@@ -0,0 +1,63 @@
+<?php
+
+//* Set the path to the form definition file.
+$tform_def_file = "form/support_message.tform.php";
+
+//* include the basic application and configuration files
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+//* Checking module permissions
+if(!stristr($_SESSION["s"]["user"]["modules"],'help')) {
+	header("Location: ../index.php");
+	exit;
+}
+
+//* Loading the templating and form classes
+$app->uses('tpl,tform,tform_actions');
+$app->load('tform_actions');
+
+//* Creating a class page_action that extends the tform_actions base class
+class page_action extends tform_actions {
+
+	//* Custom onSubmit Event handler
+	function onSubmit() {
+		global $app, $conf;
+		
+		//* If the current user is not the admin user
+		if($_SESSION["s"]["user"]["typ"] != 'admin') {
+			//* Set the admin as recipient
+			$this->dataRecord["recipient_id"] = 1;
+		}
+		
+		// Set the sender_id field to the ID of the current user
+		$this->dataRecord["sender_id"] = $_SESSION["s"]["user"]["userid"];
+		
+		//* call the onSubmit function of the parent class
+		parent::onSubmit();
+	}
+	
+	//* Custom onShow Event handler
+	function onShow() {
+		global $app, $conf;
+
+		//* We do not want that messages get edited, so we switch to a 
+		//  read only template  if a existing message is loaded
+		if($this->id > 0) {
+			$app->tform->formDef['tabs']['message']['template'] = 'templates/support_message_view.htm';
+		}
+		
+		//* call the onShow function of the parent class
+		parent::onShow();
+	}
+}
+
+//* Create the new page object
+$page = new page_action();
+
+
+
+//* Start the page rendering and action handling
+$page->onLoad();
+
+?>
\ No newline at end of file
diff --git a/interface/web/help/support_message_list.php b/interface/web/help/support_message_list.php
new file mode 100644
index 0000000000000000000000000000000000000000..5fc45e5ce45f71a5c58dbc543f70f342cc169716
--- /dev/null
+++ b/interface/web/help/support_message_list.php
@@ -0,0 +1,23 @@
+<?php
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+//* Path to the list definition file
+$list_def_file = "list/support_message.list.php";
+
+//* Check the module permissions
+if(!stristr($_SESSION["s"]["user"]["modules"],'help')) {
+	header("Location: ../index.php");
+	exit;
+}
+
+//* Loading the class
+$app->uses('listform_actions');
+
+//* Optional limit
+// $app->listform_actions->SQLExtWhere = "type = 'alias'";
+
+//* Start the form rendering and action ahndling
+$app->listform_actions->onLoad();
+
+?>
\ No newline at end of file
diff --git a/interface/web/help/templates/support_message_edit.htm b/interface/web/help/templates/support_message_edit.htm
new file mode 100644
index 0000000000000000000000000000000000000000..58e46b10600b0730cc3274cb0cbe4901c8eb280f
--- /dev/null
+++ b/interface/web/help/templates/support_message_edit.htm
@@ -0,0 +1,32 @@
+<table width="500" border="0" cellspacing="0" cellpadding="2">
+  <tmpl_if name="is_admin">
+  <tr>
+    <td class="frmText11">{tmpl_var name='recipient_id_txt'}:</td>
+    <td class="frmText11">
+		<select name="recipient_id" class="text">
+			{tmpl_var name='recipient_id'}
+		</select>
+	</td>
+  </tr>
+  </tmpl_if>
+  <tr>
+    <td class="frmText11">{tmpl_var name='subject_txt'}:</td>
+    <td class="frmText11"><input name="subject" type="text" class="text" value="{tmpl_var name='subject'}" size="30" maxlength="255"></td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='message_txt'}:</td>
+    <td class="frmText11"><textarea name='message' cols='30' rows='10'>{tmpl_var name='message'}</textarea></td>
+  </tr>
+  <tr>
+    <td class="frmText11">&nbsp;</td>
+    <td class="frmText11">&nbsp;</td>
+  </tr>
+  <tr>
+    <td>&nbsp;</td>
+    <td><input name="btn_save" type="button" class="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','help/support_message_edit.php');"><div class="buttonEnding"></div>&nbsp;
+      <input name="btn_cancel" type="button" class="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('help/support_message_list.php');"><div class="buttonEnding"></div>
+    </td>
+  </tr>
+</table>
+<input type="hidden" name="id" value="{tmpl_var name='id'}">
+<input type="hidden" name="tstamp" value="{tmpl_var name='tstamp'}">
\ No newline at end of file
diff --git a/interface/web/help/templates/support_message_list.htm b/interface/web/help/templates/support_message_list.htm
new file mode 100644
index 0000000000000000000000000000000000000000..66ec25c0471898f9f05bb3509a5e327cd8825dbd
--- /dev/null
+++ b/interface/web/help/templates/support_message_list.htm
@@ -0,0 +1,25 @@
+<div class="frmTextHead"><tmpl_var name="list_head_txt"></div><br />
+<input type="button" value="{tmpl_var name="add_new_record_txt"}" class="button" onClick="loadContent('help/support_message_edit.php');" /><div class="buttonEnding"></div><br /><br />
+<table width="100%" border="0" cellspacing="0" cellpadding="4" class="listTable">
+  <tr>
+    <td class="tblHead"><tmpl_var name="sender_id_txt"></td>
+    <td class="tblHead"><tmpl_var name="subject_txt"></td>
+    <td class="tblHead">&nbsp;</td>
+  </tr>
+  <tr>
+    <td class="frmText11"><select name="search_sender_id" onChange="submitForm('pageForm','help/support_message_list.php');">{tmpl_var name='search_sender_id'}</select></td>
+    <td class="frmText11"><input type="text" name="search_subject" value="{tmpl_var name='search_subject'}" class="text" /></td>
+    <td class="frmText11" align="right"><input name="Filter" type="button" id="Filter" value="{tmpl_var name="filter_txt"}" class="button" onClick="submitForm('pageForm','help/support_message_list.php');"><div class="buttonEnding"></div></td>
+  </tr>
+  <tmpl_loop name="records">
+  <tr bgcolor="{tmpl_var name="bgcolor"}">
+    <td class="frmText11"><a href="#" onClick="loadContent('help/support_message_edit.php?id={tmpl_var name='id'}');" class="frmText11">{tmpl_var name="sender_id"}</a></td>
+    <td class="frmText11"><a href="#" onClick="loadContent('help/support_message_edit.php?id={tmpl_var name='id'}');" class="frmText11">{tmpl_var name="subject"}</a></td>
+    <td class="frmText11" align="right">[<a href="javascript: del_record('help/support_message_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}');" class="frmText11">{tmpl_var name='delete_txt'}</a>]</td>
+  </tr>
+  </tmpl_loop>
+
+  <tr>
+  	<td colspan="3" height="40" align="center" class="tblFooter"><tmpl_var name="paging"></td>
+  </tr>
+</table>
\ No newline at end of file
diff --git a/interface/web/help/templates/support_message_view.htm b/interface/web/help/templates/support_message_view.htm
new file mode 100644
index 0000000000000000000000000000000000000000..394682760e93195534133896cac5fbe29f9f2d56
--- /dev/null
+++ b/interface/web/help/templates/support_message_view.htm
@@ -0,0 +1,14 @@
+<table width="500" border="0" cellspacing="0" cellpadding="2">
+  <tr>
+    <td class="frmText11">{tmpl_var name='subject_txt'}:</td>
+    <td class="frmText11">{tmpl_var name='subject'}</td>
+  </tr>
+  <tr>
+    <td class="frmText11">{tmpl_var name='message_txt'}:</td>
+    <td class="frmText11">{tmpl_var name='message'}</td>
+  </tr>
+  <tr>
+    <td class="frmText11">&nbsp;</td>
+    <td class="frmText11">&nbsp;</td>
+  </tr>
+</table>
\ No newline at end of file