diff --git a/api/DAO.class.php b/api/DAO.class.php
index 9afd9d0..5fff925 100644
--- a/api/DAO.class.php
+++ b/api/DAO.class.php
@@ -5916,13 +5916,14 @@ class DAO_MailTemplate extends DevblocksORMHelper {
 	const TEMPLATE_TYPE = 'template_type';
 	const OWNER_ID = 'owner_id';
 	const CONTENT = 'content';
-	
+        const TEAM_ID = 'team_id';
+        
 	public static function create($fields) {
 		$db = DevblocksPlatform::getDatabaseService();
 		$id = $db->GenID('generic_seq');
 		
 		$sql = sprintf("INSERT INTO %s (id,title,description,folder,template_type,owner_id,content) ".
-			"VALUES (%d,'','','',0,0,'')",
+			"VALUES (%d,'','','',0,0,'',0)",
 			self::_TABLE,
 			$id
 		);
@@ -5993,7 +5994,7 @@ class DAO_MailTemplate extends DevblocksORMHelper {
 	public function getWhere($where=null) {
 		$db = DevblocksPlatform::getDatabaseService();
 		
-		$sql = sprintf("SELECT id,title,description,folder,template_type,owner_id,content ".
+		$sql = sprintf("SELECT id,title,description,folder,template_type,owner_id,content,team_id ".
 			"FROM %s ".
 			(!empty($where) ? ("WHERE $where ") : " ").
 			" ORDER BY folder, title ",
@@ -6032,6 +6033,7 @@ class DAO_MailTemplate extends DevblocksORMHelper {
 			$object->template_type = intval($rs->fields['template_type']);
 			$object->owner_id = intval($rs->fields['owner_id']);
 			$object->content = $rs->fields['content'];
+                        $object->team_id = intval($rs->fields['team_id']);
 			$objects[$object->id] = $object;
 			$rs->MoveNext();
 		}
diff --git a/plugins/cerberusweb.core/api/uri/display.php b/plugins/cerberusweb.core/api/uri/display.php
index e116256..06089b5 100644
--- a/plugins/cerberusweb.core/api/uri/display.php
+++ b/plugins/cerberusweb.core/api/uri/display.php
@@ -1212,6 +1212,7 @@ class ChDisplayPage extends CerberusPageExtension {
 
 	// Ajax
 	function showTemplatesPanelAction() {
+                @$active_worker = CerberusApplication::getActiveWorker();
 		@$txt_name = DevblocksPlatform::importGPC($_REQUEST['txt_name'],'string','');
 		@$reply_id = DevblocksPlatform::importGPC($_REQUEST['reply_id'],'integer');
 		@$type = DevblocksPlatform::importGPC($_REQUEST['type'],'integer',0);
@@ -1226,11 +1227,18 @@ class ChDisplayPage extends CerberusPageExtension {
 		$folders = DAO_MailTemplate::getFolders($type);
 		$tpl->assign('folders', $folders);
 
-		$where = null;
+                if (count($membership = $active_worker->getMemberships()) > 0) {
+                        foreach ($membership as $mem1) { $group_list[] = $mem1->team_id; }  unset($mem1);
+                }
+                $group_list_text = implode(',',$group_list);
+
+                $where = null;
 		if(empty($folder)) {
-			$where = sprintf("%s = %d",
+			$where = sprintf("%s = %d AND %s IN (%s,0) ",
 				DAO_MailTemplate::TEMPLATE_TYPE,
-				$type
+				$type,
+                                DAO_MailTemplate::TEAM_ID,
+                                $group_list_text
 			);
 		} 
 		
@@ -1242,6 +1250,7 @@ class ChDisplayPage extends CerberusPageExtension {
 	
 	// Ajax
 	function showTemplateEditPanelAction() {
+                @$active_worker = CerberusApplication::getActiveWorker();
 		@$id = DevblocksPlatform::importGPC($_REQUEST['id'],'integer');
 //		@$txt_name = DevblocksPlatform::importGPC($_REQUEST['txt_name'],'string','');		
 		@$reply_id = DevblocksPlatform::importGPC($_REQUEST['reply_id'],'integer');
@@ -1254,7 +1263,13 @@ class ChDisplayPage extends CerberusPageExtension {
 //		$tpl->assign('txt_name', $txt_name);
 		$tpl->assign('type', $type);
 		
-		$folders = DAO_MailTemplate::getFolders($type);
+                $groups = DAO_Group::getAll();
+                $tpl->assign('groups', $groups);
+                
+                @$allowed_group_list = $active_worker->getMemberships();
+                $tpl->assign('allowed_group_list', $allowed_group_list);
+
+                $folders = DAO_MailTemplate::getFolders($type);
 		$tpl->assign('folders', $folders);
 		
 		$template = DAO_MailTemplate::get($id);
@@ -1284,6 +1299,7 @@ class ChDisplayPage extends CerberusPageExtension {
 				DAO_MailTemplate::CONTENT => $content,
 				DAO_MailTemplate::TEMPLATE_TYPE => $type,
 				DAO_MailTemplate::OWNER_ID => $worker->id,
+                                DAO_MailTemplate::TEAM_ID => $group_limit,
 			);
 			
 			if(empty($id)) { // new
diff --git a/plugins/cerberusweb.core/patches/4.3.1.php b/plugins/cerberusweb.core/patches/4.3.1.php
index fce5d2c..cb986b0 100644
--- a/plugins/cerberusweb.core/patches/4.3.1.php
+++ b/plugins/cerberusweb.core/patches/4.3.1.php
@@ -68,4 +68,18 @@ if(isset($columns['CONTENT'])) {
 	$datadict->ExecuteSQLArray($sql);
 }
 
+// ===========================================================================
+// Add the mail_template.team_id to mail_template so we can limit the display of templates based on group ownwership
+
+$columns = $datadict->MetaColumns('mail_template');
+$indexes = $datadict->MetaIndexes('mail_template',false);
+
+if(!isset($columns['team_id'])) {
+        $sql = $datadict->AddColumnSQL('mail_template', 'team_id I4 DEFAULT 0 NOTNULL');
+        $datadict->ExecuteSQLArray($sql);
+
+        $sql = $datadict->CreateIndexSQL('team_id','mail_template','team_id');
+        $datadict->ExecuteSQLArray($sql);
+}
+
 return TRUE;
diff --git a/plugins/cerberusweb.core/strings.xml b/plugins/cerberusweb.core/strings.xml
index 404648f..4ed5d1a 100644
--- a/plugins/cerberusweb.core/strings.xml
+++ b/plugins/cerberusweb.core/strings.xml
@@ -966,6 +966,9 @@
 		<tu tuid='display.reply.email_templates'>
 			<tuv xml:lang="en_US"><seg>E-mail Templates</seg></tuv>
 		</tu>
+                <tu tuid='display.reply.email_templates.limit_group'>
+                        <tuv xml:lang="en_US"><seg>Limit to Group: </seg></tuv>
+                </tu>
 		<tu tuid='display.reply.forward.banner'>
 			<tuv xml:lang="en_US"><seg>---- Forwarded message ----</seg></tuv>
 		</tu>		
diff --git a/plugins/cerberusweb.core/templates/display/rpc/email_templates/template_edit_panel.tpl b/plugins/cerberusweb.core/templates/display/rpc/email_templates/template_edit_panel.tpl
index 9bf1d19..06f0ab5 100644
--- a/plugins/cerberusweb.core/templates/display/rpc/email_templates/template_edit_panel.tpl
+++ b/plugins/cerberusweb.core/templates/display/rpc/email_templates/template_edit_panel.tpl
@@ -57,7 +57,16 @@
 		<option value="#worker_title#">Title</option>
 	</optgroup>
 </select>
+
 <br>
+{$translate->_('display.reply.email_templates.limit_group')} 
+<select name="group_id">
+<option value="0" {if $template->team_id==$team_id}selected{/if}>{$translate->_('common.all')}</option>
+{foreach from=$allowed_group_list item=group key=team_id}
+        <option value="{$team_id}" {if $template->team_id==$team_id}selected{/if}>{$groups[$team_id]->name}</option>
+{/foreach}
+</select>
+</form>
 <br>
 
 <button type="button" onclick="saveGenericAjaxPanel('replyTemplateEditForm',true,ajax.onSaveReplyTemplate);"><img src="{devblocks_url}c=resource&p=cerberusweb.core&f=images/document_ok.gif{/devblocks_url}" align="top"> {$translate->_('common.save_changes')|capitalize}</button>

