diff --git a/game/modules/tome/data/talents/chronomancy/chronomancy.lua b/game/modules/tome/data/talents/chronomancy/chronomancy.lua
index 42d7bf2b46e1d66b92e270c48aac5502f49c2b23..9e7b0ca5cf8a8ccafa1ecd47eb0f2d8a22150b26 100644
--- a/game/modules/tome/data/talents/chronomancy/chronomancy.lua
+++ b/game/modules/tome/data/talents/chronomancy/chronomancy.lua
@@ -28,6 +28,7 @@ newTalent{
 	tactical = { PARADOX = 2 },
 	no_npc_use = true,
 	no_energy = true,
+	no_unlearn_last = true,
 	getAnomaly = function(self, t) return 6 - (self:getTalentLevelRaw(self.T_STATIC_HISTORY) or 0) end,
 	getPower = function(self, t) return math.floor(self:getWil()/2) end,
 	action = function(self, t)
@@ -96,14 +97,14 @@ newTalent{
 		if self:hasEffect(self.T_PRECOGNITION) then
 			save_bonus = save_bonus * 2
 		end
-		
+
 		local mental_save, physical_save, spell_save, defense_bonus = 0
 		if type == "mental" then mental_save = save_bonus end
 		if type == "physical" then physical_save = save_bonus end
-		if type == "spell" then spell_save = save_bonus end		
-		if type == "defense" then defense_bonus = save_bonus end		
+		if type == "spell" then spell_save = save_bonus end
+		if type == "defense" then defense_bonus = save_bonus end
 		print("Spin Fate", type, mental_save, physical_save, spell_save, defense_bonus)
-		
+
 		self:setEffect(self.EFF_SPIN_FATE, t.getDuration(self, t), {max_bonus = t.getSaveBonus(self, t) * 10, defense = defense_bonus, mental = mental_save, physical = physical_save, spell = spell_save})
 		return true
 	end,
@@ -159,7 +160,7 @@ newTalent{
 		-- clear the chronoworlds and the timed effect
 		if game._chronoworlds then game._chronoworlds = nil end
 		game.player.tmp[self.EFF_PRECOGNITION] = nil
-		
+
 		-- check for Spin Fate
 		local eff = self:hasEffect(self.EFF_SPIN_FATE)
 		local mental_power, physical_power, spell_power, accuracy = 0
@@ -170,7 +171,7 @@ newTalent{
 			spell_power = (eff.cur_spell or eff.spell) * percentage
 			accuracy_power = (eff.cur_defense or eff.defense) * percentage
 		end
-							
+
 		self:setEffect(self.EFF_PRESCIENCE, t.getDuration(self, t), {detect=t.getDetection(self, t), mental=mental_power, physical=physical_power, spell=spell_power, accuracy=accuracy_power})
 		if self:knowTalent(self.T_FORESIGHT) then
 			local t = self:getTalentFromId(self.T_FORESIGHT)
@@ -183,7 +184,7 @@ newTalent{
 		local duration = t.getDuration(self, t)
 		local percent = t.getPercentage(self, t)
 		return ([[While under the affects of Precognition you may use Moment of Prescience to cancel it, walking the timeline exactly as you did before to reach the present.
-		Doing so will pull your awareness fully into the moment, increasing your stealth detection and see invisibility by %d for %d turns. 
+		Doing so will pull your awareness fully into the moment, increasing your stealth detection and see invisibility by %d for %d turns.
 		If you have Spin Fate going when you cast this spell you'll gain %d%% of your spin as accuracy, attack power, spell power, or mind power as appropriate.
 		This spell takes no time to cast.]]):
 		format(detect, duration, percent)
diff --git a/game/modules/tome/data/talents/spells/golemancy.lua b/game/modules/tome/data/talents/spells/golemancy.lua
index c28adabe38faf1174ac8db5d953b2689a00b8751..bfb11f63cd7d5b7be8681256848bd25105ca46df 100644
--- a/game/modules/tome/data/talents/spells/golemancy.lua
+++ b/game/modules/tome/data/talents/spells/golemancy.lua
@@ -140,6 +140,7 @@ newTalent{
 	cooldown = 20,
 	mana = 10,
 	no_npc_use = true,
+	no_unlearn_last = true,
 	getHeal = function(self, t)
 		local ammo = self:hasAlchemistWeapon()
 		return 50 + self:combatTalentSpellDamage(self.T_GOLEM_POWER, 15, 550, ((ammo and ammo.alchemist_power or 0) + self:combatSpellpower()) / 2)
diff --git a/game/modules/tome/data/talents/spells/stone-alchemy.lua b/game/modules/tome/data/talents/spells/stone-alchemy.lua
index 88f5d5f63764eab9447c5f23646a4b5102086fad..09d24c645938d31a33de4e1f61c2c4aec64f1a35 100644
--- a/game/modules/tome/data/talents/spells/stone-alchemy.lua
+++ b/game/modules/tome/data/talents/spells/stone-alchemy.lua
@@ -24,6 +24,7 @@ newTalent{
 	points = 1,
 	mana = 30,
 	no_npc_use = true,
+	no_unlearn_last = true,
 	make_gem = function(self, t, base_define)
 		local nb = rng.range(40, 80)
 		local gem = game.zone:makeEntityByName(game.level, "object", "ALCHEMIST_" .. base_define)
diff --git a/game/modules/tome/data/talents/techniques/grappling.lua b/game/modules/tome/data/talents/techniques/grappling.lua
index f81a9bc59fdebbb533f9c1b102d7779e914655a9..d7fd52b0a502bda7a6b648ca6fa4b86aa1842ba2 100644
--- a/game/modules/tome/data/talents/techniques/grappling.lua
+++ b/game/modules/tome/data/talents/techniques/grappling.lua
@@ -27,6 +27,7 @@ newTalent{
 	tactical = { BUFF = 2 },
 	type_no_req = true,
 	no_npc_use = true, -- They dont need it since it auto switches anyway
+	no_unlearn_last = true,
 	getSave = function(self, t) return self:getStr(20, true) end,
 	getDamage = function(self, t) return self:getStr(10, true) end,
 	activate = function(self, t)
diff --git a/game/modules/tome/data/talents/techniques/pugilism.lua b/game/modules/tome/data/talents/techniques/pugilism.lua
index e3ea5b7d7893f3902a2c70eabb2f06f9f17dd1a4..0f588be00aa6ba06a0c51f2f90d8de5e320462dd 100644
--- a/game/modules/tome/data/talents/techniques/pugilism.lua
+++ b/game/modules/tome/data/talents/techniques/pugilism.lua
@@ -36,6 +36,7 @@ newTalent{
 	tactical = { BUFF = 2 },
 	type_no_req = true,
 	no_npc_use = true, -- They dont need it since it auto switches anyway
+	no_unlearn_last = true,
 	getAttack = function(self, t) return self:getDex(25, true) end,
 	getDamage = function(self, t) return self:getDex(50, true) end,
 	activate = function(self, t)
diff --git a/game/modules/tome/data/talents/techniques/unarmed-training.lua b/game/modules/tome/data/talents/techniques/unarmed-training.lua
index 6bc5ce855b90b6519850ed650346378747514752..0b774cef594e56513c0d57c3c44b668b546fc316 100644
--- a/game/modules/tome/data/talents/techniques/unarmed-training.lua
+++ b/game/modules/tome/data/talents/techniques/unarmed-training.lua
@@ -26,6 +26,7 @@ newTalent{
 	hide = true,
 	mode = "passive",
 	points = 1,
+	no_unlearn_last = true,
 	getDamage = function(self, t) return self.level * 0.5 end,
 	on_learn = function(self, t)
 		self.combat.sound = "actions/melee"