diff --git a/src/uncategorized/hgApplication.tw b/src/uncategorized/hgApplication.tw
index 7bef2cc307a5006b77da878cfe229465c4bf93b9..79829ee53291c01efc192080f2d283eed4642ca0 100644
--- a/src/uncategorized/hgApplication.tw
+++ b/src/uncategorized/hgApplication.tw
@@ -4,7 +4,8 @@
 	<<set $HGSeverity = 0>>
 <</if>>
 
-<<set _effectiveness = $HeadGirl.actualAge+(($HeadGirl.intelligence+$HeadGirl.intelligenceImplant)/3)-($HeadGirl.accent*5)+($HGSeverity*10)+(($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3)-($activeSlave.accent*5)>>
+<<set $activeSlave.training = Math.clamp($activeSlave.training, 0, 150)>>
+<<set _effectiveness = $HeadGirl.actualAge+(($HeadGirl.intelligence+$HeadGirl.intelligenceImplant)/3)-($HeadGirl.accent*5)+($HGSeverity*10)+(($activeSlave.intelligence+$activeSlave.intelligenceImplant)/4)-($activeSlave.accent*5)>>
 <<if $AgePenalty == 0>>
 	<<set _effectiveness += Math.max(0,(30-$HeadGirl.actualAge))>>
 <</if>>
@@ -41,6 +42,7 @@
 
 She helps $activeSlave.slaveName however she can. The tender care has @@.green;improved $activeSlave.slaveName's health.@@
 <<set $activeSlave.health += 10>>
+<<set $activeSlave.training = 0>>
 
 <<else>>
 
@@ -160,7 +162,8 @@ She helps $activeSlave.slaveName however she can. The tender care has @@.green;i
 
 <<if $HGtraining == "obedience">>
 
-<<set _effectiveness -= $activeSlave.intelligence+$activeSlave.intelligenceImplant>>
+<<set $activeSlave.training = 0>>
+<<set _effectiveness -= ($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3>>
 <<if _effectiveness <= 0>>
 	$activeSlave.slaveName is smart enough to complicate things; she manages to outwit her this week and makes no progress.
 <<else>>
@@ -176,7 +179,7 @@ She helps $activeSlave.slaveName however she can. The tender care has @@.green;i
 
 <<elseif $HGtraining == "paraphilia">>
 
-<<set _effectiveness -= $activeSlave.intelligence+$activeSlave.intelligenceImplant>>
+<<set _effectiveness -= ($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3>>
 <<set $activeSlave.training += _effectiveness>>
 $HeadGirl.slaveName does her best to get $activeSlave.slaveName past it with punishments and rewards,
 <<if $activeSlave.training > 100>>
@@ -184,12 +187,12 @@ $HeadGirl.slaveName does her best to get $activeSlave.slaveName past it with pun
 	<<set $activeSlave.training = 0>>
 	<<set $activeSlave.sexualFlaw = "none">>
 <<else>>
-		and makes partial progress.
+	and makes partial progress.
 <</if>>
 
 <<elseif $HGtraining == "flaw">>
 
-<<set _effectiveness -= $activeSlave.intelligence+$activeSlave.intelligenceImplant>>
+<<set _effectiveness -= ($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3>>
 <<set $activeSlave.training += _effectiveness>>
 $HeadGirl.slaveName punishes $activeSlave.slaveName whenever she catches her indulging in her bad habits,
 <<if $activeSlave.training > 100>>
@@ -201,12 +204,12 @@ $HeadGirl.slaveName punishes $activeSlave.slaveName whenever she catches her ind
 		<<set $activeSlave.sexualFlaw = "none">>
 	<</if>>
 <<else>>
-		and makes partial progress.
+	and makes partial progress.
 <</if>>
 
 <<elseif $HGtraining == "soften">>
 
-<<set _effectiveness -= $activeSlave.intelligence*15>>
+<<set _effectiveness -= ($activeSlave.intelligence+$activeSlave.intelligenceImplant)/3>>
 <<set $activeSlave.training += _effectiveness>>
 She punishes $activeSlave.slaveName whenever she sees her breaking the rules yet does her best to retain what makes the slave special,
 <<if $activeSlave.training > 150>>
diff --git a/src/uncategorized/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw
index d1e9f78d60fa99bfa74f39d3a8f7454d1da20fb9..f7a0430b2593768636d5ab010eed29d049c5b942 100644
--- a/src/uncategorized/ptWorkaround.tw
+++ b/src/uncategorized/ptWorkaround.tw
@@ -9,6 +9,7 @@
 <</if>>
 ''__@@.pink;$activeSlave.slaveName@@__'' when she isn't otherwise occupied.
 
+<<set $activeSlave.training = Math.clamp($activeSlave.training, 0, 100)>>
 <<set $activeSlave.training += 80-($activeSlave.intelligence+$activeSlave.intelligenceImplant)/5+(($activeSlave.devotion+$activeSlave.trust)/10)>>
 <<if ($PC.slaving >= 100) && $personalAttention.length == 1>> /* negate bonus when splitting focus among slaves */
 	<<set $activeSlave.training += 20>>