diff --git a/phpBB/phpbb/session.php b/phpBB/phpbb/session.php
index 691d0d5bef..0a6a18ffbe 100644
--- a/phpBB/phpbb/session.php
+++ b/phpBB/phpbb/session.php
@@ -1082,7 +1082,7 @@ class session
 	*/
 	function check_ban($user_id = false, $user_ips = false, $user_email = false, $return = false)
 	{
-		global $config, $db;
+		global $config, $db, $phpbb_dispatcher;
 
 		if (defined('IN_CHECK_BAN') || defined('SKIP_CHECK_BAN'))
 		{
@@ -1196,6 +1196,20 @@ class session
 		}
 		$db->sql_freeresult($result);
 
+		/**
+		* Event to set custom ban type
+		*
+		* @event core.session_set_custom_ban
+		* @var	bool		return				If $return is false this routine does not return on finding a banned user, it outputs a relevant message and stops execution
+		* @var	bool		banned				Check if user already banned
+		* @var	array|false	ban_row				Ban data
+		* @var	string		ban_triggered_by	Method that caused ban, can be your custom method
+		* @since 3.1.3-RC1
+		*/
+		$ban_row = isset($ban_row) ? $ban_row : false;
+		$vars = array('return', 'banned', 'ban_row', 'ban_triggered_by');
+		extract($phpbb_dispatcher->trigger_event('core.session_set_custom_ban', compact($vars)));
+
 		if ($banned && !$return)
 		{
 			global $template, $phpbb_root_path, $phpEx;
diff --git a/phpBB/ucp.php b/phpBB/ucp.php
index 182bc2e285..8c74ca1f3c 100644
--- a/phpBB/ucp.php
+++ b/phpBB/ucp.php
@@ -164,6 +164,22 @@ switch ($mode)
 
 				$cookie_name = str_replace($config['cookie_name'] . '_', '', $cookie_name);
 
+				/**
+				* Event to save custom cookies from deletion
+				*
+				* @event core.ucp_delete_cookies
+				* @var	string	cookie_name		Cookie name to checking
+				* @var	bool	retain_cookie	Do we retain our cookie or not, true if retain
+				* @since 3.1.3-RC1
+				*/
+				$retain_cookie = false;
+				$vars = array('cookie_name', 'retain_cookie');
+				extract($phpbb_dispatcher->trigger_event('core.ucp_delete_cookies', compact($vars)));
+				if ($retain_cookie)
+				{
+					continue;
+				}
+
 				// Polls are stored as {cookie_name}_poll_{topic_id}, cookie_name_ got removed, therefore checking for poll_
 				if (strpos($cookie_name, 'poll_') !== 0)
 				{