diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 431e90684df9e2dc8bfe0e262d90bdcdf553c46a..58918dc9592060e0efb89cba7d239ac308ccf37c 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -8097,31 +8097,53 @@
 /*
 <<if $dangerousPregancy != 0>>
 	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && $slaves[$i].pregAdaptation < 500 && $slaves[$i].broodmother < 1>>
-		<<set _miscarriageChance = 100-((($slaves[$i].pregAdaptation*1000)-($slaves[$i].bellyPreg+($slaves[$i].bellyFluid*5)))/1000)>>
-		<<set _miscarriageChance += ($slaves[$i].curatives == 1 ? 10 : 0)>>
+		<<set _miscarriageChance = -10>>
+		<<set _miscarriageChance += (($slaves[$i].bellyPreg/1000)-$slaves[$i].pregAdaptation)>> /* this could use to not be linear */
+		<<if $slaves[$i].inflation > 0>>
+			<<set _miscarriageChance += 10>>
+		<</if>>
+		<<set _miscarriageChance -= ($slaves[$i].curatives == 1 ? 100 : 0)>>
 		<<if $slaves[$i].health < -20>>
-			<<set _miscarriageChance += ($slaves[$i].health/10)>>
+			<<set _miscarriageChance -= ($slaves[$i].health)>>
 			<<if $slaves[$i].trust < -20>>
-				<<set _miscarriageChance += ($slaves[$i].trust/10)>>
+				<<set _miscarriageChance -= ($slaves[$i].trust/2)>>
 			<</if>>
+		<<elseif $slaves[$i].health > 80>>
+			<<set _miscarriageChance -= ($slaves[$i].health/10)>>
 		<</if>>
-		<<set _miscarriageChance -= ($slaves[$i].chem/10)>>
+		<<set _miscarriageChance += ($slaves[$i].chem/10)>>
 		<<if $slaves[$i].weight < -50>>
-			<<set _miscarriageChance += ($slaves[$i].weight/5)>>
-		<</if>>
-		<<if $slaves[$i].assignment == "rest">>
-			<<set _miscarriageChance += 10>>
+			<<set _miscarriageChance -= ($slaves[$i].weight)>>
+		<</if>>
+		<<if $masterSuitePregnancySlaveLuxuries == 1 && ($slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine")>>
+			<<set _miscarriageChance -= 300>>
+		<<elseif $slaves[$i].assignment == "rest">>
+			<<set _miscarriageChance -= 100>>
+		<<elseif $slaves[$i].assignment == ""rest in the spa"">>
+			<<set _miscarriageChance -= 50>>
 		<<elseif $slaves[$i].assignment == "get treatment in the clinic">>
 			<<if $Nurse != 0>>
-				<<set _miscarriageChance += 30>>
+				<<set _miscarriageChance -= 200>>
 			<<else>>
-				<<set _miscarriageChance += 15>>
+				<<set _miscarriageChance -= 150>>
+			<</if>>
+		<</if>>
+		<<if $slaves[$i].bellyAccessory == "support band">>
+			<<set _miscarriageChance -= 30>>
+		<</if>>
+		<<if $slaves[$i].pregControl == "slow gestation">>
+			<<set _miscarriageChance -= 100>>
+		<<elseif $slaves[$i].pregControl == "speed up">>
+			<<if _miscarriageChance > 0>>
+				<<set _miscarriageChance *= 2>>
 			<</if>>
 		<</if>>
 		<<set _miscarriageChance = Math.round(_miscarriageChance)>>
-		<<if random(0,100) > _miscarriageChance>>
+		<<if _miscarriageChance > random(0,100)>>
 			<<set _chance = random(1,100)>>
 			<<if $slaves[$i].preg > 27>>
+				<<set $slaves[$i].labor = 1, $slaves[$i].prematureBirth = 1, $birthee = 1>>
+				<<set _miscarriage = 1>>
 			<<elseif $slaves[$i].preg > 25 && _chance > 10>>
 				<<set $slaves[$i].labor = 1, $slaves[$i].prematureBirth = 1, $birthee = 1>>
 				<<set _miscarriage = 1>>
@@ -8137,7 +8159,31 @@
 			<</if>>
 		<</if>>
 	<</if>>
-	<<if _miscarriage != 1 && (($slaves[$i].belly > ($slaves[$i].pregAdaptation*3200)) || $slaves[$i].bellyPreg > 600000)>>
+	<<if _miscarriage != 1 && (($slaves[$i].belly > ($slaves[$i].pregAdaptation*3200)) || $slaves[$i].bellyPreg > 600000)>> /*If she can't relieve the pressure that way, will she hold?*/
+		<<set _miscarriageChance = -80>>
+		<<set _burstChance += (($slaves[$i].belly/1000)-$slaves[$i].pregAdaptation)>> /* this could use to not be linear */
+		<<if $slaves[$i].health < -20>>
+			<<set _burstChance -= ($slaves[$i].health)>>
+		<<elseif $slaves[$i].health > 80>>
+			<<set _burstChance -= ($slaves[$i].health/10)>>
+		<</if>>
+		<<if $slaves[$i].weight < 0>>
+			<<set _burstChance -= $slaves[$i].weight>>
+		<</if>>
+		<<set _burstChance -= $slaves[$i].bellySag>>
+		<<set _burstChance -= $slaves[$i].muscles>>
+		<<if $slaves[$i].bellyAccessory == "support band">>
+			<<set _burstChance -= 10>>
+		<</if>>
+		<<if $slaves[$i].pregControl == "speed up">>
+			<<if _burstChance > 0>>
+				<<set _burstChance *= 4>>
+			<</if>>
+		<</if>>
+		<<set _burstChance = Math.round(_burstChance)>>
+		<<if _burstChance > random(0,100)>>
+			slave pops
+		<</if>>
 	<</if>>
 <</if>>
 */