Index: core/kernel/application.php
===================================================================
--- core/kernel/application.php
+++ core/kernel/application.php
@@ -667,11 +667,6 @@
 	 */
 	public function siteDomainField($field, $formatted = false, $format = null)
 	{
-		if ( $this->isAdmin ) {
-			// don't apply any filtering in administrative console
-			return false;
-		}
-
 		if ( !$this->siteDomain ) {
 			$this->siteDomain = $this->recallObject('site-domain.current', null, Array ('live_table' => true));
 			/** @var kDBItem $site_domain */
@@ -1818,15 +1813,20 @@
 	 */
 	public function getSecureDomain()
 	{
-		$ret = $this->isAdmin ? $this->ConfigValue('AdminSSLDomain') : false;
+		// Dynamically detected site domain wins over any statically defined domain.
+		$site_domain = $this->siteDomainField('SSLDomainName');
+
+		if ( $site_domain ) {
+			return $site_domain;
+		}
 
-		if ( !$ret ) {
-			$ssl_domain = $this->siteDomainField('SSLDomainName');
+		$admin_domain = $this->isAdmin ? $this->ConfigValue('AdminSSLDomain') : false;
 
-			return strlen($ssl_domain) ? $ssl_domain : $this->ConfigValue('SSLDomain');
+		if ( $admin_domain ) {
+			return $admin_domain;
 		}
 
-		return $ret;
+		return $this->ConfigValue('SSLDomain');
 	}
 
 	/**
Index: core/units/site_domains/site_domain_eh.php
===================================================================
--- core/units/site_domains/site_domain_eh.php
+++ core/units/site_domains/site_domain_eh.php
@@ -44,14 +44,9 @@
 		public function getPassedID(kEvent $event)
 		{
 			if ( $event->Special == 'current' ) {
-				if ( $this->Application->isAdmin ) {
-					$event->setEventParam('raise_warnings', 0);
-				}
-				else {
-					$domain_field = PROTOCOL == 'https://' ? 'SSLDomainName' : 'DomainName';
+				$domain_field = PROTOCOL == 'https://' ? 'SSLDomainName' : 'DomainName';
 
-					return $this->querySiteDomain($domain_field, $_SERVER['HTTP_HOST']);
-				}
+				return $this->querySiteDomain($domain_field, $_SERVER['HTTP_HOST']);
 			}
 
 			return parent::getPassedID($event);
@@ -107,7 +102,7 @@
 		protected function LoadItem(kEvent $event)
 		{
 			if ( $this->Application->isAdmin ) {
-				// don't load domain data from cache
+				// Don't load domain data from a cache. Unmatched site domain results in "ID=false".
 				parent::LoadItem($event);
 
 				return;
@@ -116,10 +111,10 @@
 			/** @var kDBItem $object */
 			$object = $event->getObject();
 
-			$id = (int)$this->getPassedID($event);
+			$id = (int)$this->getPassedID($event); // Unmatched site domain results in "ID=0".
 
 			if ( $object->isLoaded() && ($object->GetID() == $id) ) {
-				// object is already loaded by same id
+				// Object is already loaded by the same id.
 				return;
 			}
 
@@ -127,7 +122,7 @@
 			$site_helper = $this->Application->recallObject('SiteHelper');
 
 			$site_domains = $site_helper->getSiteDomains();
-			$domain_data = array_key_exists($id, $site_domains) ? $site_domains[$id] : false;
+			$domain_data = array_key_exists($id, $site_domains) ? $site_domains[$id] : array();
 
 			if ( $object->LoadFromHash($domain_data) ) {
 				/** @var Params $actions */