diff --git a/game/modules/tome/class/interface/PartyLore.lua b/game/modules/tome/class/interface/PartyLore.lua
index 585bf48156886878893b771f7f151e692a4ac2e0..10f3e6752a8404dfa5526f462324a095948bd2d8 100644
--- a/game/modules/tome/class/interface/PartyLore.lua
+++ b/game/modules/tome/class/interface/PartyLore.lua
@@ -57,10 +57,12 @@ function _M:init(t)
 end
 
 function _M:knownLore(lore)
+	self.lore_known = self.lore_known or {}
 	return self.lore_known[lore] and true or false
 end
 
 function _M:getLore(lore, silent)
+	self.lore_known = self.lore_known or {}
 	self.additional_lore = self.additional_lore or {}
 	if not silent then assert(self.lore_defs[lore] or self.additional_lore[lore], "bad lore id "..lore) end
 	return self.lore_defs[lore] or self.additional_lore[lore]
@@ -78,6 +80,8 @@ function _M:learnLore(lore, nopopup, silent, nostop)
 	if not l then return end
 	local learnt = false
 
+	self.lore_known = self.lore_known or {}
+
 	if not config.settings.tome.lore_popup and profile.mod.lore and profile.mod.lore.lore and profile.mod.lore.lore[lore] and not l.always_pop then nopopup = true end
 
 	if not self:knownLore(lore) or l.always_pop then