diff --git a/game/modules/tome/data/talents/psionic/finer-energy-manipulations.lua b/game/modules/tome/data/talents/psionic/finer-energy-manipulations.lua
index f9ee68e1c43cd37eb0cc276f6f027e8fcbf4a51e..134e3a7942a3cbae3702be44c37b8289d4b23791 100644
--- a/game/modules/tome/data/talents/psionic/finer-energy-manipulations.lua
+++ b/game/modules/tome/data/talents/psionic/finer-energy-manipulations.lua
@@ -142,16 +142,19 @@ newTalent{
 				game.zone:applyEgo(o, new_ego, "object")
 				if in_dialog then self:talentDialogReturn(true) end
 			else
-				if old_ego then game.zone:applyEgo(o, old_ego, "object", true) end -- nothing happened
+				if old_ego then game.zone:applyEgo(o, old_ego, "object") end -- nothing happened
 				game.logPlayer(self, "You cannot reshape your %s any further.", o:getName{do_colour=true, no_count=true})
 			end
 		else
 			local armour = t.arm_boost(self, t)
 			local fat = t.fat_red(self, t)
 			local old_fat = (o.old_fat or 0)
-			local old_arm
-			old_arm = o.wielder.combat_armor
+			local old_arm = o.wielder and o.wielder.combat_armor or 0
 			local old_ego = game.zone:removeEgoByName(o, "reshape armour")
+			-- Not a huge deal
+			o.wielder = o.wielder or {}
+			o.wielder.combat_armor = o.wielder.combat_armor or 0
+			o.wielder.fatigue = o.wielder.fatigue or 0
 			local force_reshape = false
 			if not old_ego and o.been_reshaped then
 				o.wielder.combat_armor = o.orig_arm
@@ -160,7 +163,7 @@ newTalent{
 				-- if an older version, just reshape anyway
 				-- if reshapen by better TL, keep it
 				fat = math.max(fat, old_fat)
-				armour = math.max(armour, o.wielder.combat_armour - old_arm)
+				armour = math.max(armour, o.wielder.combat_armor - old_arm)
 				force_reshape = true
 			elseif old_ego and old_fat == 0 then  -- in case of future backward compatibility removal
 				old_fat = old_ego.fatigue_reduction
@@ -168,23 +171,23 @@ newTalent{
 			o.old_fat, o.orig_fat, o.orig_arm = nil, nil, nil
 			if force_reshape or old_fat < fat or old_arm < o.wielder.combat_armor + armour then
 				local real_fat
-				if e.wielder.fatigue < 0 then real_fat = 0
-				else real_fat = min(fat, e.wielder.fatigue) end
+				if o.wielder.fatigue < 0 then real_fat = 0
+				else real_fat = math.min(fat, o.wielder.fatigue) end
 				local new_ego = Entity.new{
 					name = "reshape armour",
 					display_string = "reshaped["..tostring(armour)..","..tostring(real_fat).."%] ", display_prefix = true,
 					been_reshaped = true,
-					wielder = {combat_armour=arm, fatigue=-real_fat},
+					wielder = {combat_armor=armour, fatigue=-real_fat},
 					fatigue_reduction = fat,
 					old_fat = fat, orig_fat = o.wielder.fatigue, orig_arm = o.wielder.armour,  -- Easier this way
 					fake_ego = true, unvault_ego = true,
 				}
 				game.logPlayer(self, "You reshape your %s.", o:getName{do_colour=true, no_count=true})
 				if o.orig_name then o.name = o.orig_name end --Fix name for items affected by older versions of this talent
-				game.zone:applyEgo(o, new_ego, "object", true)
+				game.zone:applyEgo(o, new_ego, "object")
 				if in_dialog then self:talentDialogReturn(true) end
 			else
-				game.zone:applyEgo(o, old_ego, "object", true)
+				game.zone:applyEgo(o, old_ego, "object")
 				game.logPlayer(self, "You cannot reshape your %s any further.", o:getName{do_colour=true, no_count=true})
 			end
 		end