diff --git a/package/gluon-core/check_site.lua b/package/gluon-core/check_site.lua
index 99d15e43e03175d991b0e34f620e6506a91c9e88..2ae05427e830fee89b9e80499d680a92b459cff9 100644
--- a/package/gluon-core/check_site.lua
+++ b/package/gluon-core/check_site.lua
@@ -1,5 +1,20 @@
 need_string(in_site({'site_code'}))
 need_string(in_site({'site_name'}))
+
+-- this_domain() returns nil when multidomain support is disabled
+if this_domain() then
+	function need_domain_name(path)
+		need_string(path)
+		need(path, function(default_domain)
+			local f = io.open(os.getenv('IPKG_INSTROOT') .. '/lib/gluon/domains/' .. default_domain .. '.json')
+			if not f then return false end
+			f:close()
+			return true
+		end, nil, 'be a valid domain name')
+	end
+	need_domain_name(in_site({'default_domain'}))
+end
+
 need_string_match(in_domain({'domain_seed'}), '^' .. ('%x'):rep(64) .. '$')
 
 need_string({'opkg', 'lede'}, false)
diff --git a/scripts/check_site.lua b/scripts/check_site.lua
index 3f3ed546eb2c95147f9d7f0056bb62cb9cb46708..4cf6f0787201f05f5ede183b3fbb84bb478887cd 100644
--- a/scripts/check_site.lua
+++ b/scripts/check_site.lua
@@ -18,6 +18,10 @@ function in_domain(var)
 	return var
 end
 
+function this_domain()
+	return nil
+end
+
 
 local function path_to_string(path)
 	return table.concat(path, '/')