diff --git a/scripts/image_customization_lib.lua b/scripts/image_customization_lib.lua
index 26d99db2cef6b0fd4ab274b83938a4bb1c37834c..1c06702050d9cc3370a4d3da0da910b76d5cb494 100644
--- a/scripts/image_customization_lib.lua
+++ b/scripts/image_customization_lib.lua
@@ -22,16 +22,17 @@ local function get_customization_file_name(env)
 end
 
 local function evaluate_device(env, dev)
-	local selections = {}
+	local selections = {
+		feature = {},
+		package = {},
+	}
 	local funcs = {}
 	local device_overrides = {}
 
 	local function add_elements(element_type, element_list)
+		-- We depend on the fact both feature and package
+		-- are already initialized as empty tables
 		for _, element in ipairs(element_list) do
-			if not selections[element_type] then
-				selections[element_type] = {}
-			end
-
 			selections[element_type][element] = true
 		end
 	end
@@ -111,13 +112,23 @@ local function evaluate_device(env, dev)
 	}
 end
 
-function M.get_selection(selection_type, env, dev)
+function M.get_selections(env, dev)
+	local return_object = {
+		features = {},
+		packages = {},
+	}
+
 	if not file_exists(get_customization_file_name(env)) then
-		return {}
+		return return_object
 	end
 
 	local eval_result = evaluate_device(env, dev)
-	return collect_keys(eval_result.selections[selection_type] or {})
+	return_object = {
+		features = collect_keys(eval_result.selections['feature']),
+		packages = collect_keys(eval_result.selections['package']),
+	}
+
+	return return_object
 end
 
 function M.device_overrides(env, dev)
diff --git a/scripts/target_config_lib.lua b/scripts/target_config_lib.lua
index becfd7a89621b3ec1560268d5d139b59b7295775..f83d1bcc7ad8207f06e2ef1fa3efed6bba385fbd 100644
--- a/scripts/target_config_lib.lua
+++ b/scripts/target_config_lib.lua
@@ -87,19 +87,23 @@ local function feature_packages(features)
 end
 
 local function site_specific_packages(dev_info)
+	local site_selections
 	local site_packages
 	local feature_inherited_pkgs
 	local site_features
 
+	-- Get all enabled selections from image-customization
+	site_selections = image_customization_lib.get_selections(env, dev_info)
+
 	-- First read enabled features from site
-	site_features = image_customization_lib.get_selection('feature', env, dev_info)
+	site_features = site_selections['features']
 	site_features = compact_list(site_features, false)
 
 	-- Create List from packages inherited from features
 	feature_inherited_pkgs = feature_packages(site_features)
 
 	-- Read list of packages from site
-	site_packages = image_customization_lib.get_selection('package',  env, dev_info)
+	site_packages = site_selections['packages']
 
 	-- Concat feature-packages with site-packages
 	local pkgs = concat_list(feature_inherited_pkgs, site_packages)