diff --git a/game/engines/default/engine/Zone.lua b/game/engines/default/engine/Zone.lua
index 553f0a81b72055dce2074c2ac15ecba39a80a461..8e458a0f91e9c4c1bc7eedf56421e0ccb31931a0 100644
--- a/game/engines/default/engine/Zone.lua
+++ b/game/engines/default/engine/Zone.lua
@@ -167,7 +167,7 @@ function _M:checkFilter(e, filter, type)
 	if not filter then return true end
 	if filter.ignore and self:checkFilter(e, filter.ignore, type) then return false end
 
-	forceprint("Checking filter", filter.type, filter.subtype, "::", e.type,e.subtype,e.name)
+	print("Checking filter", filter.type, filter.subtype, "::", e.type,e.subtype,e.name)
 	if filter.type and filter.type ~= e.type then return false end
 	if filter.subtype and filter.subtype ~= e.subtype then return false end
 	if filter.name and filter.name ~= e.name then return false end
diff --git a/game/engines/default/engine/dialogs/ShowEquipInven.lua b/game/engines/default/engine/dialogs/ShowEquipInven.lua
index 12ea57050f7167753c60d06aa0072e2339138059..17c10a558f751636f95649d49cc5fd1ee9b6de82 100644
--- a/game/engines/default/engine/dialogs/ShowEquipInven.lua
+++ b/game/engines/default/engine/dialogs/ShowEquipInven.lua
@@ -187,7 +187,7 @@ function _M:generateList()
 	local list = self.inven_list
 	local chars = {}
 	local i = 1
-	for item, o in ipairs(self.actor:getInven("INVEN")) do
+	for item, o in ipairs(self.actor:getInven("INVEN") or {}) do
 		if not self.filter or self.filter(o) then
 			local char = self:makeKeyChar(i)
 
diff --git a/game/engines/default/engine/dialogs/ShowInventory.lua b/game/engines/default/engine/dialogs/ShowInventory.lua
index 833ed8e7cdb0136f5955c658cff39af16826efc1..032aa5dff4b560b234a705906699b2cada2251c4 100644
--- a/game/engines/default/engine/dialogs/ShowInventory.lua
+++ b/game/engines/default/engine/dialogs/ShowInventory.lua
@@ -83,7 +83,7 @@ function _M:generateList()
 	local list = {}
 	list.chars = {}
 	local i = 1
-	for item, o in ipairs(self.inven) do
+	for item, o in ipairs(self.inven or {}) do
 		if not self.filter or self.filter(o) then
 			local char = self:makeKeyChar(i)
 
diff --git a/game/modules/tome/class/GameState.lua b/game/modules/tome/class/GameState.lua
index 88bd04ba9ece053e1b8e32d28e0432307d77b205..7664ba7b0778d93553e4ac9d5b7295b6f87f9e90 100644
--- a/game/modules/tome/class/GameState.lua
+++ b/game/modules/tome/class/GameState.lua
@@ -1050,7 +1050,7 @@ local random_zone_layouts = {
 		["'"] = data:getDoor(),
 	} end },
 	-- Building
-	{ name="building", rarity=4, gen=function(data)
+--[[ not yet	{ name="building", rarity=4, gen=function(data)
 		return {
 		class = "engine.generator.map.Building",
 		lite_room_chance = rng.range(0, 100),
@@ -1062,6 +1062,7 @@ local random_zone_layouts = {
 		down = data:getDown(),
 		door = data:getDoor(),
 	} end },
+]]
 	-- "Octopus"
 	{ name="octopus", rarity=6, gen=function(data)
 		return {
diff --git a/game/modules/tome/data/quests/staff-absorption.lua b/game/modules/tome/data/quests/staff-absorption.lua
index 838a2ac7899d3bdee343454c44a53efd3f1cd0c9..ce97fc8d56836dfb3ed24d53422c049cfca8ba64 100644
--- a/game/modules/tome/data/quests/staff-absorption.lua
+++ b/game/modules/tome/data/quests/staff-absorption.lua
@@ -77,8 +77,10 @@ start_ambush = function(self, who)
 		self:setEffect(self.EFF_DAMAGE_SHIELD, 3, {power=1000000})
 
 		local o, item, inven_id = self:findInAllInventories("Staff of Absorption")
-		self:removeObject(inven_id, item, true)
-		o:removed()
+		if o then
+			self:removeObject(inven_id, item, true)
+			o:removed()
+		end
 
 		game.logPlayer(self, "#VIOLET#You wake up after a few hours, surprised to be alive, but the staff is gone!")
 		game.logPlayer(self, "#VIOLET#Go at once to Last Hope to report those events!")
diff --git a/game/modules/tome/data/talents/chronomancy/paradox.lua b/game/modules/tome/data/talents/chronomancy/paradox.lua
index d4e90e79ea07b934ec95a0ea0a555c503720b10c..bb002582b92a83d1c7aaefe3d3a83a007df5c095 100644
--- a/game/modules/tome/data/talents/chronomancy/paradox.lua
+++ b/game/modules/tome/data/talents/chronomancy/paradox.lua
@@ -145,6 +145,7 @@ newTalent{
 		a.faction = self.faction
 		a.max_life = a.max_life
 		a.life = a.max_life
+		a.die = nil
 		a.summoner = self
 		a.summoner_gain_exp=true
 		a.summon_time = t.getDuration(self, t)
diff --git a/game/modules/tome/data/talents/gifts/gifts.lua b/game/modules/tome/data/talents/gifts/gifts.lua
index f357049946bcf9a0b2c5af614ee04fff5f5480c0..0411dbf88d74b38955839f279fef7069efd66447 100644
--- a/game/modules/tome/data/talents/gifts/gifts.lua
+++ b/game/modules/tome/data/talents/gifts/gifts.lua
@@ -89,6 +89,7 @@ function setupSummon(self, m, x, y, no_control)
 	m.unused_talents = 0
 	m.unused_generics = 0
 	m.unused_talents_types = 0
+	m.no_points_on_levelup = true
 	m.ai_state = m.ai_state or {}
 	m.ai_state.tactic_leash = 100
 	-- Try to use stored AI talents to preserve tweaking over multiple summons