diff --git a/src/js/storyJS.js b/src/js/storyJS.js
index 64b3a1b087f7f0d13d454192e36bc2f30ffa5c3a..9dec944bdddf40e70036f79a846c706d5979954d 100644
--- a/src/js/storyJS.js
+++ b/src/js/storyJS.js
@@ -209,7 +209,7 @@ window.isFertile = function(slave) {
 		return null;
 	}
 
-	if (slave.womb.length > 0 && slave.geneticQuirks.superfetation < 2 && slave.ovaImplant < 1) { /* currently pregnant without superfetation */
+	if (slave.womb.length > 0 && slave.geneticQuirks.superfetation < 2) { /* currently pregnant without superfetation */
 		return false;
 	} else if (slave.womb.length > 0) { /* temp failure condition to prevent current double preg bug */
 		return false;
diff --git a/src/js/walkPastJS.js b/src/js/walkPastJS.js
index 77f8f61dd643029e0341609731a1cc5e3178e51b..83afe9a292ab1ebbbb87b1485aec523fac713d53 100644
--- a/src/js/walkPastJS.js
+++ b/src/js/walkPastJS.js
@@ -1448,7 +1448,7 @@ window.walkPasts = function(slave, _seed) {
 				if (canDoAnal(slave) || canDoVaginal(slave)) {
 					t += "being double penetrated by ";
 				} else {
-					t += `using ${her} body to please `;
+					t += `using ${his} body to please `;
 				}
 				t += "a pair of customers.";
 			}
diff --git a/src/npc/fPCImpreg.tw b/src/npc/fPCImpreg.tw
index fd2c7f0ce86bae87ccc3929b008ecad0fa144dc8..81284de615f6061d8b5fdc98486b895cd6a74a6d 100644
--- a/src/npc/fPCImpreg.tw
+++ b/src/npc/fPCImpreg.tw
@@ -122,15 +122,15 @@ You repeat this ritual throughout the week, ensuring that $activeSlave.slaveName
 <</if>>
 <<if $arcologies[0].FSGenderRadicalist != "unset" && $activeSlave.mpreg == 1>>
 	Society @@.green;approves@@ of your fucking your slaves ass pregnant; this advances the ideal all a slave needs is $his rear.
-	<<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderRadicalist/$FSLockinLevel), "futureSocieties")>>
+	<<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderRadicalist/$FSLockinLevel), "futureSocieties", $activeSlave)>>
 	<<set $arcologies[0].FSGenderRadicalist += 0.05*$FSSingleSlaveRep>>
 <<elseif $arcologies[0].FSGenderFundamentalist != "unset" && $activeSlave.mpreg == 1>>
 	Society @@.red;is disgusted@@ by this degenerate form of reproduction.
-	<<run repX(forceNeg($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel)), "futureSocieties")>>
+	<<run repX(forceNeg($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel)), "futureSocieties", $activeSlave)>>
 	<<set $arcologies[0].FSGenderFundamentalist -= 0.05*$FSSingleSlaveRep>>
 <<elseif $arcologies[0].FSGenderFundamentalist != "unset">>
 	Society @@.green;approves@@ of your putting a new slave in $him; this advances the idea that all slaves should bear their masters' babies.
-	<<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel), "futureSocieties")>>
+	<<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel), "futureSocieties", $activeSlave)>>
 	<<set $arcologies[0].FSGenderFundamentalist += 0.05*$FSSingleSlaveRep>>
 <</if>>
 
diff --git a/src/npc/fSlaveImpregConsummate.tw b/src/npc/fSlaveImpregConsummate.tw
index 686f0d09a6ff2bcf81151fd61a3d97c5a3241253..06f6ad4c0914e38cfa4cae13fb3754df70ad6d17 100644
--- a/src/npc/fSlaveImpregConsummate.tw
+++ b/src/npc/fSlaveImpregConsummate.tw
@@ -279,15 +279,15 @@ Throughout the week, you keep $activeSlave.slaveName's <<if $activeSlave.mpreg =
 <</if>>
 <<if $arcologies[0].FSGenderRadicalist != "unset" && $activeSlave.mpreg == 1>>
 	Society @@.green;approves@@ of your breeding your slaves ass; this advances the ideal all a slave needs is their rear.
-	<<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderRadicalist/$FSLockinLevel), "futureSocieties")>>
+	<<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderRadicalist/$FSLockinLevel), "futureSocieties", $activeSlave)>>
 	<<set $arcologies[0].FSGenderRadicalist += 0.05*$FSSingleSlaveRep>>
 <<elseif $arcologies[0].FSGenderFundamentalist != "unset" && $activeSlave.mpreg == 1>>
 	Society @@.red;is disgusted@@ by this degenerate form of reproduction.
-	<<run repX(forceNeg($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel), "futureSocieties")>>
+	<<run repX(forceNeg($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel), "futureSocieties", $activeSlave)>>
 	<<set $arcologies[0].FSGenderFundamentalist -= 0.05*$FSSingleSlaveRep>>
 <<elseif $arcologies[0].FSGenderFundamentalist != "unset">>
 	Society @@.green;approves@@ of your breeding your slaves; this advances the ideal of a durable, self propagating race of slaves.
-	<<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel), "futureSocieties")>>
+	<<run repX($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel), "futureSocieties", $activeSlave)>>
 	<<set $arcologies[0].FSGenderFundamentalist += 0.05*$FSSingleSlaveRep>>
 <</if>>
 
diff --git a/src/pregmod/fSlaveSelfImpreg.tw b/src/pregmod/fSlaveSelfImpreg.tw
index 564afe70f457945c3bbc82bebf09db585677d6ef..70eb78f2125f4804bba03f061dc5b57891878d53 100644
--- a/src/pregmod/fSlaveSelfImpreg.tw
+++ b/src/pregmod/fSlaveSelfImpreg.tw
@@ -202,12 +202,12 @@ You repeat this ritual throughout the week, ensuring that $activeSlave.slaveName
 	<</if>>
 	<<if _delt > 0>>
 		Society is @@.green;pleased@@ by the addition of a new slave, no matter the means by which it was produced.
-		<<run repX($FSSingleSlaveRep*($arcologies[0].FSRepopulationFocus/$FSLockinLevel), "futureSocieties")>>
+		<<run repX($FSSingleSlaveRep*($arcologies[0].FSRepopulationFocus/$FSLockinLevel), "futureSocieties", $activeSlave)>>
 	<<else>>
 		The traditional elements of your society disapprove of this degenerate form of reproduction, but their complaints are countered by those who believe producing more slaves by any means necessary.
 	<</if>>
 <<elseif $arcologies[0].FSGenderFundamentalist != "unset">>
 	Society @@.red;is disgusted@@ by this degenerate form of reproduction.
-	<<run repX(forceNeg($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel)), "futureSocieties")>>
+	<<run repX(forceNeg($FSSingleSlaveRep*($arcologies[0].FSGenderFundamentalist/$FSLockinLevel)), "futureSocieties", $activeSlave)>>
 	<<set $arcologies[0].FSGenderFundamentalist -= 0.05*$FSSingleSlaveRep>>
 <</if>>
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 35e18d9a3b5898e7cea12ef3313ea1b98da5cb46..fab5020f3dc5df6ed1cfddcbcb5385fcffe0dcbb 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -2073,7 +2073,7 @@ $He is
 		<</if>>
 	<</if>>
 
-	<<set _pubertyAge = Math.max($activeSlave.pubertyAgeXX, $activeSlave.pubertyAgeXY)>>
+	<<set _pubertyAge = Math.min($activeSlave.pubertyAgeXX, $activeSlave.pubertyAgeXY)>>
 	<<if ($activeSlave.physicalAge < _pubertyAge-2)>>
 		$He is too sexually immature to have armpit hair.
 	<<elseif $activeSlave.underArmHStyle == "hairless">>
diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw
index a185d57542f4f512bdcdc5b610bd8a2bbdfeb0a5..d0c73339b5764bc44eb0fe300ed1aea804700542 100644
--- a/src/uncategorized/reShelterInspection.tw
+++ b/src/uncategorized/reShelterInspection.tw
@@ -419,7 +419,7 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 				<<set $shelterAbuse -= 1>>
 			<<else>>
 				_Inspectee.slaveName says confidently, "I'm a whore!" The inspector makes a go-on gesture, and the slave continues, "It'<<s>> hard work <<s>>ometime<<s>>, but I'm okay. I'm much happier with my current owner, thank you." The inspector looks pleased, and says _he2'll put out a @@.green;good word@@ about you.
-				<<run repX(100, "event")>>
+				<<run repX(100, "event", _Inspectee)>>
 				<<set $shelterAbuse -= 1>>
 			<</if>>
 		<<case "serve the public" "serve in the club">>
@@ -428,13 +428,13 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 				<<set $shelterAbuse -= 1>>
 			<<else>>
 				_Inspectee.slaveName says confidently, "I'm a <<s>>lut!" The inspector makes a go-on gesture, and the slave continues, "It'<<s>> not bad. I'm much happier with my current owner, thank you." The inspector looks pleased, and says _he2'll put out a @@.green;good word@@ about you.
-				<<run repX(100, "event")>>
+				<<run repX(100, "event", _Inspectee)>>
 				<<set $shelterAbuse -= 1>>
 			<</if>>
 		<<case "get milked" "work in the dairy">>
 			<<if _Inspectee.lactation > 0>>
 				_Inspectee.slaveName says happily, "I'm a milk cow!" The inspector arches an eyebrow skeptically, and the slave continues, "I give milk. <<S>>ee?" $He expresses a squirt of milk from one nipple. It'<<s>> a ni<<c>>e life. I'm much happier with my current owner, thank you." The inspector looks pleased, and says _he2'll put out a @@.green;good word@@ about you.
-				<<run repX(100, "event")>>
+				<<run repX(100, "event", _Inspectee)>>
 				<<set $shelterAbuse -= 1>>
 			<<else>>
 				_Inspectee.slaveName says happily, "I get cockmilked!" The inspector arches an eyebrow skeptically, and the slave continues, "I give cum. It'<<s>> actually lot<<s>> of fun!" $He shakes $his penis for emphasis. "The machine feel<<s>> <<s>>o good. And when I'm almo<<s>>t empty, I get buttfucked to get the la<<s>>t drop out of me!" $He shivers. "It'<<s>> really ni<<c>>e..." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
@@ -442,7 +442,7 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 			<</if>>
 		<<default>>
 			_Inspectee.slaveName <<say>>s flatly, "Whatever my beloved <<Master>> require<<s>>. I have a good life now, and I would appre<<c>>iate it if you would <<s>>upport me by doing everything you can for _himP." Taken aback, the inspector says _he2'll put out a @@.green;good word@@ about you.
-			<<run repX(100, "event")>>
+			<<run repX(100, "event", _Inspectee)>>
 			<<set $shelterAbuse -= 1>>
 		<</switch>>
 	<</if>>
diff --git a/src/uncategorized/saDevotion.tw b/src/uncategorized/saDevotion.tw
index 08226cf92ec298a78a2ca3bfb4c7e0709494c61a..646bb6bd107f0ec2dffd56199be0b5fbffc3d281 100644
--- a/src/uncategorized/saDevotion.tw
+++ b/src/uncategorized/saDevotion.tw
@@ -339,7 +339,7 @@
 			<<= FSChange("Paternalist", 2)>>
 		<<else>>
 			@@.green;improves your reputation.@@
-			<<run repX($FSSingleSlaveRep*2, "retirement")>>
+			<<run repX($FSSingleSlaveRep*2, "retirement", $slaves[$i])>>
 		<</if>>
 	<<elseif $slaves[$i].devotion >= -20>>
 		The prospect of manumission @@.hotpink;encourages $him to submit to slavery@@ and @@.mediumaquamarine;encourages $him to be optimistic.@@
@@ -358,7 +358,7 @@
 			<<= FSChange("Paternalist", 2)>>
 		<<else>>
 			@@.green;improves your reputation.@@
-			<<run repX($FSSingleSlaveRep, "retirement")>>
+			<<run repX($FSSingleSlaveRep, "retirement", $slaves[$i])>>
 		<</if>>
 	<<elseif $slaves[$i].devotion >= -20>>
 		The prospect of manumission @@.hotpink;cheers $him up@@ and @@.mediumaquamarine;makes $him optimistic.@@
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 64a15e71d9dd48f84151779815848eb6b7ea1bf9..f342f7ef41382b1d5f1f44a01a2695bb45aba637 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -128,7 +128,7 @@
 
 		/* MENTAL DEVELOPMENT */
 
-		<<if $slaves[$i].ovaImplant == "asexual" && canGetPregnant($slaves[$i])>>
+		<<if $slaves[$i].ovaImplant == "asexual" && isFertile($slaves[$i]) && $slaves[$i].preg == 0>>
 			The frequent internal ejaculations and accompanying climaxes brought about by $his ovarian modifications keeps $him sexually sated.
 			<<if ($slaves[$i].energy >= 10) && ($slaves[$i].attrXY >= 10 || $slaves[$i].attrXX >= 10)>>
 				However, the constant self-gratification @@.red;both damages what $he finds attractive and leaves sex less satisfying.@@
@@ -3640,12 +3640,12 @@
 			<</switch>> /* closes assignment checks */
 		<</if>> /* closes all impregnation checks */
 
-		<<if $slaves[$i].ovaImplant == "asexual">>
-			<<= knockMeUp($slaves[$i], 100, 2, $slaves[$i].ID, 1)>>
-			Since $he is fertile and still not pregnant, the frequent orgasms caused by $his asexual reproduction modifications eventually leave $him @@.lime;pregnant with $his own child.@@
-		<</if>>
-
 	<</if>> /* CLOSES CAN GET PREGNANT */
+	
+	<<if $slaves[$i].ovaImplant == "asexual" && isFertile($slaves[$i]) && $slaves[$i].preg == 0>>
+		<<= knockMeUp($slaves[$i], 100, 2, $slaves[$i].ID, 1)>>
+		Since $he is fertile and still not pregnant, the frequent orgasms caused by $his asexual reproduction modifications eventually leave $him @@.lime;pregnant with $his own child.@@
+	<</if>>
 
 	/* PREGNANCY TYPE SANITY CHECK (not for pregnancies started above) */
 	<<if $slaves[$i].preg <= 0>>
diff --git a/src/uncategorized/saRecruitGirls.tw b/src/uncategorized/saRecruitGirls.tw
index a537ac2dff1d2e0797171842566c4a725c856c1a..a57da9afd98067ea177c721b29d8259f1669689f 100644
--- a/src/uncategorized/saRecruitGirls.tw
+++ b/src/uncategorized/saRecruitGirls.tw
@@ -666,7 +666,7 @@
 	<</if>>
 	/* and then there's Aztec revivalist, completely forgotten */
 
-	<<run repX(Math.trunc(_seed), "futureSocieties")>>
+	<<run repX(Math.trunc(_seed), "futureSocieties", $slaves[$i])>>
 
 	<<if $showEWM == 1>>
 		<<if $slaves[$i].entertainSkill > 10>>
diff --git a/src/uncategorized/seNonlethalPit.tw b/src/uncategorized/seNonlethalPit.tw
index 0524486d907927d90adc6df272621283a7e5e787..c5362706eb26534cfd9b1c9da06f3c4018a50a68 100644
--- a/src/uncategorized/seNonlethalPit.tw
+++ b/src/uncategorized/seNonlethalPit.tw
@@ -1039,10 +1039,10 @@
 	<<if $arcologies[0].FSRomanRevivalist != "unset" || $arcologies[0].FSDegradationist != "unset">>
 		They @@.green;strongly approve@@ of you using this method of punishment; this advances ideas from antiquity about what public events should be. /*not sure what the message that usually displays for Degradationism is - that might have to be changed*/
 		<<if $arcologies[0].FSRomanRevivalist != "unset">>
-			<<run repX(10*$FSSingleSlaveRep*($arcologies[0].FSRomanRevivalist/$FSLockinLevel), "pit")>>
+			<<run repX(10*$FSSingleSlaveRep*($arcologies[0].FSRomanRevivalist/$FSLockinLevel), "pit", $activeSlave)>>
 			<<set $arcologies[0].FSRomanRevivalist += 0.2*$FSSingleSlaveRep>>
 		<<elseif $arcologies[0].FSDegradationist != "unset">>
-			<<run repX(10*$FSSingleSlaveRep*($arcologies[0].FSDegradationist/$FSLockinLevel), "pit")>>
+			<<run repX(10*$FSSingleSlaveRep*($arcologies[0].FSDegradationist/$FSLockinLevel), "pit", $activeSlave)>>
 			<<set $arcologies[0].FSDegradationist += 0.2*$FSSingleSlaveRep>>
 		<</if>>
 	<</if>>
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index beb14de0367a47d92ad652b0b2e6bbc7d0fdb6fa..5086d6b54435d73b509722540f689d30964e2cc9 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -4892,7 +4892,7 @@ $He's got a
 	Society looks fondly on $his complete inability to reproduce.
 <</if>>
 
-<<set _pubertyAge = Math.max($activeSlave.pubertyAgeXX, $activeSlave.pubertyAgeXY)>>
+<<set _pubertyAge = Math.min($activeSlave.pubertyAgeXX, $activeSlave.pubertyAgeXY)>>
 <<if ($activeSlave.physicalAge < _pubertyAge-2)>>
 	$He is too sexually immature to have pubic hair.
 <<elseif ($activeSlave.pubicHStyle == "hairless")>>
diff --git a/src/utility/saRulesWidgets.tw b/src/utility/saRulesWidgets.tw
index 38b5e07c4fc0ffb3d89d249e3e719f023071edcb..12fc8b6361b47bcd659205d51b046dbceb999768 100644
--- a/src/utility/saRulesWidgets.tw
+++ b/src/utility/saRulesWidgets.tw
@@ -88,17 +88,23 @@ and
 						<<if $freeSexualEnergy > 0>>
 							<<if $freeSexualEnergy == 3>>
 								You have surplus sexual energy to burn, even when $he doesn't ask, and $he
-								<<if $slaves[$i].devotion <= 20>>
+								<<if $slaves[$i].devotion < -20>>
 									@@.hotpink;hates $himself@@ for how often $he gets off on you relieving your needs with $his body.
-								<<else>>
+								<<elseif $slaves[$i].devotion <= 50 || slaves[$i].trust <= 20>>
 									@@.hotpink;gets used to being a sex slave@@ every time $he climaxes as you use $him.
+								<<else>>
+									@@.hotpink;eagerly looks forward@@ to each climax $he shares with you.
 								<</if>>
 								<<set $slaves[$i].devotion += 2, $slaves[$i].need = 0>>
 								<<= SimpleSexAct($slaves[$i], 10)>>
 							<<elseif $freeSexualEnergy == 2>>
-								You have surplus sexual energy to fuck $him whenever $he forces $himself to ask, and $he is @@.hotpink;sexually dependent@@ on you.
+								You have surplus sexual energy to fuck $him whenever <<if $slaves[$i].relationship == -3>> you notice $his need<<else>>$he forces $himself to ask<</if>>, and $he is @@.hotpink;sexually dependent@@ on you.
 								<<set $slaves[$i].devotion += 1, $slaves[$i].need -= 40>>
 								<<= SimpleSexAct($slaves[$i], 5)>>
+							<<elseif $slaves[$i].relationship == -3>>
+								You have little surplus sexual energy, but you make sure to keep your wife's needs in mind<<if $slaves[$i].devotion < -20>>, even if $he doesn't want it<</if>>.
+								<<set $slaves[$i].need -= 40>>
+								<<= SimpleSexAct($slaves[$i], 5)>>
 							<<else>>
 								You have little surplus sexual energy, and occasionally, $he asks in vain.
 								<<set $slaves[$i].need -= 20>>