diff --git a/game/engines/default/engine/Zone.lua b/game/engines/default/engine/Zone.lua
index 44291e39b1f83b428af7d812e17a20ec26ce9ffa..0e1ac8d59d6900ce05725c389750558bfe65645b 100644
--- a/game/engines/default/engine/Zone.lua
+++ b/game/engines/default/engine/Zone.lua
@@ -289,7 +289,14 @@ function _M:makeEntity(level, type, filter, force_level, prob_filter)
 	-- Generate a specific probability list, slower to generate but no need to "try and be lucky"
 	elseif filter then
 		local base_list = nil
-		if filter.base_list then base_list = filter.base_list
+		if filter.base_list then 
+			if _G.type(filter.base_list) == "table" then base_list = filter.base_list
+			else
+				local _, _, class, file = filter.base_list:find("(.*):(.*)")
+				if class and file then
+					base_list = require(class):loadList(file)
+				end
+			end
 		elseif type == "actor" then base_list = self.npc_list
 		elseif type == "object" then base_list = self.object_list
 		elseif type == "trap" then base_list = self.trap_list
diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua
index 8734e879a4a84788a96278c87c9f544026cfe524..fc7a086bc18fc8b8a92c888046729c22fe582572 100644
--- a/game/modules/tome/class/Object.lua
+++ b/game/modules/tome/class/Object.lua
@@ -1285,6 +1285,7 @@ function _M:getDesc(name_param, compare_with, never_compare)
 		if self.power_source.technique then desc:add("Crafted by ", {"color", "LIGHT_UMBER"}, "a master", {"color", "LAST"}, true) end
 		if self.power_source.psionic then desc:add("Infused by ", {"color", "YELLOW"}, "psionic forces", {"color", "LAST"}, true) end
 		if self.power_source.unknown then desc:add("Powered by ", {"color", "CRIMSON"}, "unknown forces", {"color", "LAST"}, true) end
+		self:triggerHook{"Object:descPowerSource", desc=desc, object=self}
 	end
 
 	if self.encumber then