diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index d2f51d38bb1e4baae3c6af798d2678cdf8696aae..93969e12147ec95889ca85b6ad780646d27c39d2 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -2371,35 +2371,44 @@ function _M:equilibriumChance(eq)
 end
 
 --- Paradox checks
-function _M:paradoxChanceModifier()
-	local modifier = self:getWil() * 1.5
-	if self:knowTalent(self.T_PARADOX_MASTERY) then
-		modifier = modifier * (1 + (self:getTalentLevel(self.T_PARADOX_MASTERY)/10) or 0)
-	end
-	--print("[Paradox] Will modifier: ", modifier, "::", self:getParadox())
-	return modifier
+function _M:getModifiedParadox()
+	local will_modifier = 1 + (self:getTalentLevel(self.T_PARADOX_MASTERY)/10) or 0
+	local modified_paradox = math.max(0, self:getParadox() - (self:getWil() * will_modifier))
+	return modified_paradox
 end
 
 function _M:paradoxFailChance()
-	local chance = 	(100 + 2*self:combatFatigue()) / 100 * math.pow((self:getParadox() - self:paradoxChanceModifier()) / 200, 2)
-	if self:getParadox() < 200 then chance = 0 end
-	--print("[Paradox] Fail chance: ", chance, "::", self:getParadox())
+	local chance = 0
+	local fatigue_modifier = (100 + 2 * self:combatFatigue()) / 100
+	-- Failures only happen if Modified Paradox is over 200
+	if self:getModifiedParadox() > 200 then
+		chance = fatigue_modifier * math.pow(self:getModifiedParadox() / 200, 2)
+	end
+	-- If there's any chance, round it up
 	chance = util.bound(math.ceil(chance), 0, 100)
 	return rng.percent(chance), chance
 end
 
 function _M:paradoxAnomalyChance()
-	local chance = 	(100 + 2*self:combatFatigue()) / 100 * math.pow((self:getParadox() - self:paradoxChanceModifier()) / 300, 3)
-	if self:getParadox() < 300 then chance = 0 end
-	--print("[Paradox] Anomaly chance: ", chance, "::", self:getParadox())
+	local chance = 0
+	local fatigue_modifier = (100 + 2 * self:combatFatigue()) / 100
+	-- Anomalies only happen if Modified Paradox is over 200
+	if self:getModifiedParadox() > 300 then
+		chance = fatigue_modifier * math.pow(self:getModifiedParadox() / 300, 3)
+	end
+	-- If there's any chance, round it up
 	chance = util.bound(math.ceil(chance), 0, 100)
 	return rng.percent(chance), chance
 end
 
 function _M:paradoxBackfireChance()
-	local chance = (100 + 2 * self:combatFatigue()) / 100 * math.pow((self:getParadox() - self:paradoxChanceModifier()) / 400, 4)
-	if self:getParadox() < 400 then chance = 0 end
-	--print("[Paradox] Backfire chance: ", chance, "::", self:getParadox())
+	local chance = 0
+	local fatigue_modifier = (100 + 2 * self:combatFatigue()) / 100
+	-- Backfires only happen if Modified Paradox is over 400
+	if self:getModifiedParadox() > 400 then
+		chance = fatigue_modifier * math.pow(self:getModifiedParadox() / 400, 4)
+	end
+	-- If there's any chance, round it up
 	chance = util.bound(math.ceil(chance), 0, 100)
 	return rng.percent(chance), chance
 end
@@ -2409,21 +2418,21 @@ local previous_incParadox = _M.incParadox
 
 function _M:incParadox(paradox)
 	-- Failure checks
-	if self:getParadox() < 200 and self:getParadox() + paradox >= 200 then
+	if self:getModifiedParadox() < 200 and self:getModifiedParadox() + paradox >= 200 then
 		game.logPlayer(self, "#LIGHT_RED#You feel the edges of time begin to fray!")
 	end
-	if self:getParadox() > 200 and self:getParadox() + paradox <= 200 then
+	if self:getModifiedParadox() > 200 and self:getModifiedParadox() + paradox <= 200 then
 		game.logPlayer(self, "#LIGHT_BLUE#Time feels more stable.")
 	end
 	-- Anomaly checks
-	if self:getParadox() < 300 and self:getParadox() + paradox >= 300 then
+	if self:getModifiedParadox() < 300 and self:getModifiedParadox() + paradox >= 300 then
 		game.logPlayer(self, "#LIGHT_RED#You feel the edges of space begin to ripple and bend!")
 	end
-	if self:getParadox() > 300 and self:getParadox() + paradox <= 300 then
+	if self:getModifiedParadox() > 300 and self:getModifiedParadox() + paradox <= 300 then
 		game.logPlayer(self, "#LIGHT_BLUE#Space feels more stable.")
 	end
 	-- Backfire checks
-	if self:getParadox() < 400 and self:getParadox() + paradox >= 400 then
+	if self:getModifiedParadox() < 400 and self:getModifiedParadox() + paradox >= 400 then
 		game.logPlayer(self, "#LIGHT_RED#Space and time both fight against your control!")
 	end
 	if self:getParadox() > 400 and self:getParadox() + paradox <= 400 then
@@ -2604,13 +2613,14 @@ function _M:preUseTalent(ab, silent, fake)
 			end
 			if not silent then game.logPlayer(self, "You lose control and unleash an anomaly!") end
 			self:forceUseTalent(rng.table(ts), {ignore_energy=true})
-			self:incParadox(-(ab.paradox and (ab.paradox * paradox_scaling) or ab.sustain_paradox))
+			-- Anomalies correct the timeline and reduce Paradox
+			self:incParadox(- (ab.paradox and (ab.paradox * paradox_scaling) or ab.sustain_paradox) * 2)
 			self:useEnergy()
 			return false
 		-- Now check for failure
 		elseif not self:attr("no_paradox_fail") and self:paradoxFailChance() and not self:hasEffect(self.EFF_SPACETIME_STABILITY) then
 			if not silent then game.logPlayer(self, "You fail to use %s due to your paradox!", ab.name) end
-			self:incParadox(ab.paradox or ab.sustain_paradox / 10)
+			self:incParadox(ab.paradox and (ab.paradox * paradox_scaling) or ab.sustain_paradox)
 			self:useEnergy()
 			return false
 		end
diff --git a/game/modules/tome/data/talents/chronomancy/chronomancy.lua b/game/modules/tome/data/talents/chronomancy/chronomancy.lua
index 30d6c8929ebef88481abc4d745928ba0712abb90..47d912ffec85fc6f8b5e874b71acd70816291996 100644
--- a/game/modules/tome/data/talents/chronomancy/chronomancy.lua
+++ b/game/modules/tome/data/talents/chronomancy/chronomancy.lua
@@ -23,7 +23,7 @@ newTalent{
 	type = {"chronomancy/other", 1},
 	mode = "sustained",
 	sustain_paradox = 0,
-	hide = true,
+	--hide = true,
 	points = 1,
 	--message = "@Source@ retunes the fabric of spacetime.",
 	cooldown = 5,
@@ -43,13 +43,13 @@ newTalent{
 	end,
 	info = function(self, t)
 		local _, failure = self:paradoxFailChance()
-		local _, backfire = self:paradoxBackfireChance()
 		local _, anomaly = self:paradoxAnomalyChance()
+		local _, backfire = self:paradoxBackfireChance()
 		return ([[Reduces your paradox by one each turn while sustained.  Attacking, using an item, or a talent will cancel the spell.
 		
 		Current failure chance  : %d%%
 		Current anomaly chance  : %d%%
-		Current backfire chance : %d%%]]):format(failure, backfire, anomaly)
+		Current backfire chance : %d%%]]):format(failure, anomaly, backfire)
 	end,
 }