diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index ed9f9d2b7131f6198fdfbee32a959a1fa87517c3..96dbb389f3c560f461cfd0fac383d81fdcbabe6c 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -492,6 +492,14 @@ App.Data.resetOnNGPlus = {
 	REButtholeCheckinIDs: [],
 	REFutaSisterCheckinIDs: [],
 	REReductionCheckinIDs: [],
+
+	deathIDs: {
+		health: [],
+		overdose: [],
+		age: []
+	},
+	burstIDs: [],
+	birthIDs: [],
 	/** @type {FC.SlaveStateOrZero} */
 	activeSlave: 0,
 	activeChild: 0,
diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js
index abd51e986ae67d213fe5cf67913833b2d431770d..ea69170be00f33c51ea9a2fac4c6d66a35c88ba5 100644
--- a/src/data/backwardsCompatibility/datatypeCleanup.js
+++ b/src/data/backwardsCompatibility/datatypeCleanup.js
@@ -30,6 +30,9 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 		if (slave.hasOwnProperty("tired")) {
 			delete slave.tired;
 		}
+		delete slave.death;
+		delete slave.burst;
+		delete slave.labor;
 	}
 
 	/**
@@ -663,7 +666,12 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 	 */
 	function slavePregnancyDatatypeCleanup(slave) {
 		slave.induce = Math.clamp(+slave.induce, 0, 1) || 0;
-		slave.labor = Math.clamp(+slave.labor, 0, 1) || 0;
+		if (slave.hasOwnProperty("labor")) {
+			if (slave.labor) {
+				startLabor(slave);
+			}
+			delete slave.labor;
+		}
 		slave.prematureBirth = Math.clamp(+slave.prematureBirth, 0, 1) || 0;
 		slave.ovaries = Math.clamp(+slave.ovaries, 0, 1) || 0;
 		slave.vasectomy = Math.clamp(+slave.vasectomy, 0, 1) || 0;
diff --git a/src/endWeek/saDrugs.js b/src/endWeek/saDrugs.js
index d8371282e49bf12811e15b40ffc3bd0d89f28bb7..d85e48f360d7bcb4f729e789ba6193d255fb579f 100644
--- a/src/endWeek/saDrugs.js
+++ b/src/endWeek/saDrugs.js
@@ -1626,7 +1626,7 @@ App.SlaveAssignment.drugs = (function() {
 				slave.chem += 2;
 				if (WombBirthReady(slave, slave.pregData.normalBirth * 1.5) > 0) {
 					healthDamage(slave, 20);
-					slave.labor = 1;
+					startLabor(slave);
 					slave.induce = 1;
 					V.birthee = 1;
 					r += ` ${He} has been ready to give birth for some time now. Suppressing birth for so long <span class="red">greatly affects ${his} health.</span> ${He} may <span class="red">have trouble</span> giving birth to ${his} oversized child`;
diff --git a/src/endWeek/saGuardYou.js b/src/endWeek/saGuardYou.js
index 18b96d005fbaf8e78e28d5b654bf26256389c096..c0934db4e7fba10b89674a0eb84fbbe8265fab5e 100644
--- a/src/endWeek/saGuardYou.js
+++ b/src/endWeek/saGuardYou.js
@@ -191,7 +191,7 @@ App.SlaveAssignment.guardYou = (function() {
 				r.push(`${His} swollen, ${slave.bellyImplant}cc implant filled belly is heavy and occasionally distracts ${him}.`);
 			}
 		}
-		if (slave.labor === 1) {
+		if (isInLabor(slave)) {
 			r.push(`${He}'s feeling labor pains, greatly detracting from ${his} ability to protect you.`);
 		} else if (slave.preg >= slave.pregData.normalBirth && slave.pregControl !== "labor suppressors") {
 			r.push(`${He}'ll be going into labor any time now, detracting from ${his} ability to protect you.`);
diff --git a/src/facilities/nursery/nurseryDatatypeCleanup.js b/src/facilities/nursery/nurseryDatatypeCleanup.js
index e2c0621bf5f2ad3f25a1ff826f1e50b7a77c6342..84d47b3b9988dc339671e6d59a68ee87bd984d0b 100644
--- a/src/facilities/nursery/nurseryDatatypeCleanup.js
+++ b/src/facilities/nursery/nurseryDatatypeCleanup.js
@@ -153,7 +153,9 @@ App.Facilities.Nursery.ChildDatatypeCleanup = function(child) {
 
 	function childPregnancyDatatypeCleanup(child) {
 		child.induce = Math.clamp(+child.induce, 0, 1) || 0;
-		child.labor = Math.clamp(+child.labor, 0, 1) || 0;
+		if (child.hasOwnProperty("labor")) {
+			// Child labor, not sure how child IDs work.
+		}
 		if (child.hasOwnProperty("cSec")) {
 			if (child.cSec > 0) {
 				App.Medicine.Modification.addScar(child, "belly", "c-section");
diff --git a/src/facilities/nursery/utils/nurseryUtils.js b/src/facilities/nursery/utils/nurseryUtils.js
index ad6acc9873ad10128595d225fc92b653529313d8..266b58d81f713bc2c9b7103d017ac510c8eb995d 100644
--- a/src/facilities/nursery/utils/nurseryUtils.js
+++ b/src/facilities/nursery/utils/nurseryUtils.js
@@ -217,7 +217,6 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.intelligence = 100;
 	child.intelligenceImplant = 0;
 	child.labia = jsRandom(0, 2);
-	child.labor = 0;
 	child.lactation = 0;
 	child.lactationAdaptation = 0;
 	child.lactationDuration = 0;
diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js
index fe2bd9a5f9431bb37138bc24cb39e480ef7d7fee..a7cfe1d25350e8d8c3d53cc89023418af3386bbc 100644
--- a/src/interaction/slaveInteract.js
+++ b/src/interaction/slaveInteract.js
@@ -1566,11 +1566,16 @@ App.UI.SlaveInteract.fertility = function(slave) {
 				));
 			} else if (slave.induce === 1) {
 				note += `Hormones are being slipped into ${his} food; ${he} will give birth suddenly and rapidly this week`;
-			} else if (slave.preg > slave.pregData.normalBirth - 2 && slave.preg > slave.pregData.minLiveBirth && slave.broodmother === 0 && slave.labor === 0) {
+			} else if (
+				slave.preg > slave.pregData.normalBirth - 2 &&
+				slave.preg > slave.pregData.minLiveBirth &&
+				slave.broodmother === 0 &&
+				(!isInLabor(slave))
+			) {
 				linkArray.push(App.UI.DOM.link(
 					`Induce labor`,
 					() => {
-						slave.labor = 1;
+						startLabor(slave);
 						slave.induce = 1;
 						V.birthee = 1;
 						App.UI.SlaveInteract.refreshAll(slave);
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 5a257141d1563c6939e5d73b1cffd3f07b9734b5..0809b032d09aa64a9ffe35ddf203c30d5a88cc6a 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -1813,7 +1813,7 @@ globalThis.DefaultRules = (function() {
 				slave.pregControl = "labor suppressors";
 				r += `<br>${slave.slaveName} is ready to birth, so ${he} has been put on labor suppressing agents.`;
 			} else if (rule.pregSpeed === "stimulate" && slave.preg > slave.pregData.normalBirth - 2 && slave.preg > slave.pregData.minLiveBirth && slave.health.condition > -50) {
-				slave.labor = 1;
+				startLabor(slave);
 				slave.induce = 1;
 				V.birthee = 1;
 				r += `<br>${slave.slaveName} is ready to birth, so ${his} labor has been stimulated.`;
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index a7d3dd2f015e31757ee2fe7f2498b6f595c232a0..7c424621e422c71d4d41555a93a0a862ccf8fee9 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -1278,11 +1278,6 @@ App.Entity.SlaveState = class SlaveState {
 		 * Mainly informative only. Updated automatically at birth process based on remaining fetuses. 0 - 37
 		 */
 		this.broodmotherCountDown = 0;
-		/**
-		 * variable used to set off the birth events
-		 *
-		 * 1: birth this week; 0: not time yet */
-		this.labor = 0;
 		/**
 		 * may accept strings, use at own risk
 		 *
@@ -2403,8 +2398,6 @@ App.Entity.SlaveState = class SlaveState {
 		this.origBodyOwner = "";
 		/** Who, if relevant, the body belonged to. */
 		this.origBodyOwnerID = 0;
-		/** Cause of slave death. */
-		this.death = "";
 		/**
 		 * Slave's current hormonal balance, directs saHormones changes
 		 *
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index 21d991cc868c1c2a0393f839d719d4dbf8ba0226..e6116dfc594b6dec5f99cc12ec18b80ee6e100ba 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -1486,7 +1486,7 @@ globalThis.Deadliness = function(slave) {
 		}
 	}
 
-	if (slave.labor === 1) {
+	if (isInLabor(slave)) {
 		deadliness -= 15;
 	} else if (slave.preg >= slave.pregData.normalBirth && slave.pregControl !== "labor suppressors") {
 		deadliness -= 5;
diff --git a/src/js/birth/birth.js b/src/js/birth/birth.js
index 114d63657d00e5408cd31dc6c861a617f6e8dd65..196dd9511785c153c6a247f3445304f1472c9823 100644
--- a/src/js/birth/birth.js
+++ b/src/js/birth/birth.js
@@ -1,14 +1,12 @@
 globalThis.allBirths = function() {
 	const el = new DocumentFragment();
-	for (const slave of V.slaves) {
-		if (slave.labor === 1) {
-			el.append(birth(slave));
-			el.append(sectionBreak());
-		}
+	for (const id of V.birthIDs) {
+		el.append(birth(getSlave(id)));
+		el.append(sectionBreak());
 	}
 	V.reservedChildren = FetusGlobalReserveCount("incubator");
 	V.reservedChildrenNursery = FetusGlobalReserveCount("nursery");
-	V.birthee = 0;
+	V.birthIDs = [];
 
 	return el;
 
@@ -2069,7 +2067,6 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false} = {})
 			el.append(horrifiedSlaves(slave));
 			slaveDead = 1;
 		} else {
-			slave.labor = 0;
 			slave.induce = 0;
 		}
 		return el;
diff --git a/src/js/statsChecker/pregChecker.js b/src/js/statsChecker/pregChecker.js
new file mode 100644
index 0000000000000000000000000000000000000000..98958c620c39f73e4dfb6757c75cf05082779d9f
--- /dev/null
+++ b/src/js/statsChecker/pregChecker.js
@@ -0,0 +1,11 @@
+globalThis.isInLabor = function(slave) {
+	return V.birthIDs.includes(slave.ID);
+};
+
+globalThis.startLabor = function(slave) {
+	if (typeof slave === "number") {
+		V.birthIDs.push(slave);
+	} else {
+		V.birthIDs.push(slave.ID);
+	}
+};
diff --git a/src/npc/slaveStats.tw b/src/npc/slaveStats.tw
index 40240ea24d7873fecf76c76bb0a958e38d1c2d84..a28325d4adea22873a22b69ba3f50f625d95569e 100644
--- a/src/npc/slaveStats.tw
+++ b/src/npc/slaveStats.tw
@@ -462,7 +462,6 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		PCChildren: $activeSlave.counter.PCChildrenFathered
 		<br>KnockedUp: slaves: $activeSlave.counter.slavesKnockedUp,
 		<br>PC: $activeSlave.counter.PCKnockedUp
-		<br>labor: $activeSlave.labor,
 		Count: $activeSlave.counter.laborCount
 		<br>Births: $activeSlave.counter.births,
 		Total: $activeSlave.counter.birthsTotal
diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js
index 6bd6c2b2649a2870d6a8edb57d437ad9b8938754..313490edd3e551a1e351bfccd614cc78f33eedd7 100644
--- a/src/player/js/PlayerState.js
+++ b/src/player/js/PlayerState.js
@@ -1050,11 +1050,6 @@ App.Entity.PlayerState = class PlayerState {
 		 * Mainly informative only. Updated automatically at birth process based on remaining fetuses. 0 - 37
 		 */
 		this.broodmotherCountDown = 0;
-		/**
-		 * variable used to set off the birth events
-		 *
-		 * 1: birth this week; 0: not time yet */
-		this.labor = 0;
 		/**
 		 * may accept strings, use at own risk
 		 *
diff --git a/src/pregmod/rePregInventor.tw b/src/pregmod/rePregInventor.tw
index c256d4a533b6d52cf6dbe6e4b994e53c9ba92a86..301a46522eb0107afd4d41bb0c10189b161e76c4 100644
--- a/src/pregmod/rePregInventor.tw
+++ b/src/pregmod/rePregInventor.tw
@@ -103,7 +103,7 @@
 				$he begins to give birth to yet another child. You call your menials back to your office and decide to take a walk. By the time you're at the door, the head of $activeSlave.slaveName's next child is already cresting.
 			<<elseif $activeSlave.broodmother == 0 && $activeSlave.preg > $activeSlave.pregData.minLiveBirth+1>>
 				$his water breaks. You call your menials back to your office and decide to take a walk. As you pass by $him, it's clear that $he'll have more important things to think about it the coming day.
-				<<set $activeSlave.labor = 1>>
+				<<run startLabor($activeSlave)>>
 			<<else>>
 				$his brood shifts precariously. You call your menials back to your office and decide to take a walk. As you pass by $him, it's clear that $he'll be more concerned with staying whole than whatever foolish endeavors $he was planning.
 			<</if>>
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index 54c9f0caa16a6ac6d0cd3571d7a3d0a9131260b4..ca0406d960e9714bd32b697302159ea7a3034fc4 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -188,7 +188,6 @@
 	<<set $args[0].preg = $args[1].preg>>
 	<<set $args[0].pregSource = $args[1].pregSource>>
 	<<set $args[0].pregType = $args[1].pregType>>
-	<<set $args[0].labor = $args[1].labor>>
 	<<set $args[0].clitSetting = $args[1].clitSetting>>
 	<<set $args[0].diet = $args[1].diet>>
 	<<set $args[0].dietCum = $args[1].dietCum>>
diff --git a/src/uncategorized/pePitFight.tw b/src/uncategorized/pePitFight.tw
index fa4401b9cd8d20f11c32a7589f9980d71f020ddd..a937036864f74111202e5d555037605b1e7011e5 100644
--- a/src/uncategorized/pePitFight.tw
+++ b/src/uncategorized/pePitFight.tw
@@ -122,7 +122,7 @@ Across the ring, $his opponent's owner nods civilly to you and examines $activeS
 		$His swollen, <<print $activeSlave.bellyImplant>>cc implant filled belly is heavy and makes $him less effective.
 	<</if>>
 <</if>>
-<<if $activeSlave.labor == 1>>
+<<if isInLabor($activeSlave)>>
 	$He's feeling labor pains. $His child<<if $activeSlave.pregType > 1>>ren are<<else>> is<</if>> ready to be born.
 <<elseif $activeSlave.preg >= $activeSlave.pregData.normalBirth && $activeSlave.pregControl != "labor suppressors">>
 	$He'll be going into labor any time now and $he knows it.
diff --git a/src/uncategorized/recETS.tw b/src/uncategorized/recETS.tw
index 9e1c7f4874c7db0ce33436dbc96aa8937ab29faf..e89483fafad94b3c25ae9b013d89c4c5de4542de 100644
--- a/src/uncategorized/recETS.tw
+++ b/src/uncategorized/recETS.tw
@@ -664,7 +664,6 @@
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<run SetBellySize($activeSlave)>>
 			<<set $activeSlave.pregAdaptation = 600>>
-			<<set $activeSlave.labor = 1>>
 			<<set $activeSlave.ovaries = 1>>
 			<<set $activeSlave.counter.birthsTotal = 5>>
 			<<set $activeSlave.face = 15>>
@@ -1118,7 +1117,6 @@
 				<<set $activeSlave.pregAdaptation = 10>>
 				<<set WombFlush($activeSlave)>>
 				<<run SetBellySize($activeSlave)>>
-				<<set $activeSlave.labor = 0>>
 				<<set $activeSlave.ovaries = 0>>
 				<<set $activeSlave.counter.birthsTotal = 0>>
 				<<set $activeSlave.anus = 0>>
@@ -1170,7 +1168,6 @@
 				<<set $activeSlave.devotion -= 5>>
 				<<set $activeSlave.trust -= 5>>
 				<<set $activeSlave.oldDevotion = $activeSlave.devotion>>
-				<<set $activeSlave.labor = 0>>
 				<<set $activeSlave.counter.birthsTotal = 0>>
 				<<set $activeSlave.anus = 0>>
 				<<set $activeSlave.skill.vaginal = 0>>
@@ -1489,6 +1486,7 @@
 					<<link "Enslave the mother">>
 						<<run newSlave($activeSlave)>>
 						<<run cashX(forceNeg(_ContractCost), "slaveTransfer", $activeSlave)>>
+						<<run startLabor($activeSlave)>>
 						<<replace "#result">>
 							You have the needy $girl immediately bought to your penthouse where you help $his laboring body into an available bed for inspection. $He asks where $his children were taken, to which you reply somewhere they can be raised properly. They'll be taken care of and won't have to grow up on the streets, plus they were sucking the life out of $him. $He's a little depressed at the news, but understands your reasons. You take the opportunity to give $him a good look over; $he is really dilated! Apart from that, between all the births and dicks, $his vagina is rather worn out, though $he seems to understand how to use it. $His anus has also seen use, but not nearly as much.
 						<</replace>>
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index c53c335c7ac6fd043b45cf1ae92c0a054f185aa7..73a0fb2a9a0bf599bbf1872874908f1e8aa9567c 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -365,9 +365,10 @@
 				pays an unusual amount of attention to $slaves[$i].slaveName's pregnancy.
 			<</if>>
 		<<elseif $arcologies[0].FSRepopulationFocusPregPolicy == 0 && $arcologies[0].FSRepopulationFocus == "unset" && $HGSuiteDrugs == 1>>
-			<<if $slaves[$i].preg > $slaves[$i].pregData.normalBirth-2 && $slaves[$i].preg > $slaves[$i].pregData.minLiveBirth && $slaves[$i].broodmother === 0 && $slaves[$i].labor === 0>>
+			<<if $slaves[$i].preg > $slaves[$i].pregData.normalBirth-2 && $slaves[$i].preg > $slaves[$i].pregData.minLiveBirth && $slaves[$i].broodmother === 0 && !isInLabor($slaves[$i])>>
 				_S.HeadGirl.slaveName has no interest in a slut stuffed full of unwanted spawn, so _he2 promptly doses slaves[$i].slaveName with labor inducing agents to get $him back in fucking shape.
-				<<set $slaves[$i].labor = 1, $slaves[$i].induce = 1, $birthee = 1>>
+				<<set $slaves[$i].induce = 1>>
+				<<run startLabor($slaves[$i])>>
 			<<else>>
 				_S.HeadGirl.slaveName promptly aborts the child growing in $slaves[$i].slaveName since _he2 prefers _his2 <<= $girl>>s not harboring someone else's child or loaded down with _his2 own unwanted spawn.
 				<<run TerminatePregnancy($slaves[$i])>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 837697a18fe23e2977bd8b2c34284cdcf1f14139..9ca11bbb28b3d36da7dbe5bab4f7bbcf5ec670d2 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -6275,20 +6275,20 @@
 	<<if $slaves[$i].pregControl != "labor suppressors" && $slaves[$i].assignment != "labor in the production line">>
 		<<if $slaves[$i].broodmother < 1>>
 			<<if WombBirthReady($slaves[$i], $slaves[$i].pregData.normalBirth*1.075) > 0>> /*check for really ready fetuses - 43 weeks - max, overdue*/
-				<<set $slaves[$i].labor = 1, $birthee = 1>>
+				<<run startLabor($slaves[$i])>>
 			<<elseif WombBirthReady($slaves[$i], $slaves[$i].pregData.normalBirth) > 0 && (random(1,100) > 50)>> /*check for really ready fetuses - 40 weeks - normal*/
-				<<set $slaves[$i].labor = 1, $birthee = 1>>
+				<<run startLabor($slaves[$i])>>
 			<<elseif WombBirthReady($slaves[$i], $slaves[$i].pregData.normalBirth/1.1111) > 0 && (random(1,100) > 90)>> /*check for really ready fetuses - 36 weeks minimum */
-				<<set $slaves[$i].labor = 1, $birthee = 1>>
+				<<run startLabor($slaves[$i])>>
 			<</if>>
 		<<else>>
 			<<if WombBirthReady($slaves[$i], 37)>> /* broodmothers ready at 37 week always */
-				<<set $slaves[$i].labor = 1, $birthee = 1>>
+				<<run startLabor($activeSlave)>>
 			<</if>>
 		<</if>>
 	<</if>>
 
-	<<if $dangerousPregnancy == 1 && $slaves[$i].labor != 1>>
+	<<if $dangerousPregnancy == 1 && !isInLabor($slaves[$i])>>
 		<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && $slaves[$i].pregAdaptation < 500 && $slaves[$i].broodmother < 1>>
 			<<set _miscarriageChance = -10>>
 			<<set _miscarriageChance += (($slaves[$i].bellyPreg/1000)-$slaves[$i].pregAdaptation)>> /* this could use to not be linear */
@@ -6336,19 +6336,23 @@
 			<<if _miscarriageChance > random(0,100)>>
 				<<set _chance = random(1,100)>>
 				<<if $slaves[$i].preg >= $slaves[$i].pregData.normalBirth/1.33>>
-					<<set $slaves[$i].labor = 1, $birthee = 1>>
+					<<run startLabor($slaves[$i])>>
 					<<set _miscarriage = 1>>
 				<<elseif $slaves[$i].preg > $slaves[$i].pregData.normalBirth/1.48>>
-					<<set $slaves[$i].labor = 1, $slaves[$i].prematureBirth = 1, $birthee = 1>>
+					<<set $slaves[$i].prematureBirth = 1>>
+					<<run startLabor($slaves[$i])>>
 					<<set _miscarriage = 1>>
 				<<elseif $slaves[$i].preg > $slaves[$i].pregData.normalBirth/1.6 && _chance > 10>>
-					<<set $slaves[$i].labor = 1, $slaves[$i].prematureBirth = 1, $birthee = 1>>
+					<<set $slaves[$i].prematureBirth = 1>>
+					<<run startLabor($slaves[$i])>>
 					<<set _miscarriage = 1>>
 				<<elseif $slaves[$i].preg > $slaves[$i].pregData.normalBirth/1.73 && _chance > 40>>
-					<<set $slaves[$i].labor = 1, $slaves[$i].prematureBirth = 1, $birthee = 1>>
+					<<set $slaves[$i].prematureBirth = 1>>
+					<<run startLabor($slaves[$i])>>
 					<<set _miscarriage = 1>>
 				<<elseif $slaves[$i].preg > $slaves[$i].pregData.normalBirth/1.81 && _chance > 75>>
-					<<set $slaves[$i].labor = 1, $slaves[$i].prematureBirth = 1, $birthee = 1>>
+					<<set $slaves[$i].prematureBirth = 1>>
+					<<run startLabor($slaves[$i])>>
 					<<set _miscarriage = 1>>
 				<<else>>
 					$His overwhelmed body has @@.orange;forced $him to miscarry,@@ possibly saving $his life.
diff --git a/src/uncategorized/seLethalPit.tw b/src/uncategorized/seLethalPit.tw
index 6881c5af71f2d5b088c14dac27398a36947d5ab9..e26d45c0ca4a3700e1bf4fa50804fdb1d635bfd8 100644
--- a/src/uncategorized/seLethalPit.tw
+++ b/src/uncategorized/seLethalPit.tw
@@ -208,7 +208,7 @@ You review the rules — the <<if $pitAnimal == 0>>combatants<<else>>slave<</if>
 		$His swollen, <<print _fighterOne.bellyImplant>>cc implant filled belly is heavy and makes $him less effective.
 	<</if>>
 <</if>>
-<<if _fighterOne.labor == 1>>
+<<if isInLabor(_fighterOne)>>
 	$He's feeling labor pains. $His child<<if _fighterOne.pregType > 1>>ren are<<else>> is<</if>> ready to be born, oblivious to the fact that it will mean the death of <<if _fighterOne.pregType > 1>>their<<else>>its<</if>> mother.
 <<elseif _fighterOne.preg >= _fighterOne.pregData.normalBirth && _fighterOne.pregControl != "labor suppressors">>
 	$He'll be going into labor any time now and $he knows it. $He's terrified of the thought of $his water breaking during the fight.
@@ -368,7 +368,7 @@ You review the rules — the <<if $pitAnimal == 0>>combatants<<else>>slave<</if>
 			_His2 swollen, <<print _fighterTwo.bellyImplant>>cc implant filled belly is heavy and makes _him2 less effective.
 		<</if>>
 	<</if>>
-	<<if _fighterTwo.labor == 1>>
+	<<if isInLabor(_fighterTwo)>>
 		_He2's feeling labor pains. _His2 child<<if _fighterTwo.pregType > 1>>ren are<<else>> is<</if>> ready to be born, oblivious that it will mean the death of <<if _fighterTwo.pregType > 1>>their<<else>>its<</if>> mother.
 	<<elseif _fighterTwo.preg >= _fighterTwo.pregData.normalBirth && _fighterTwo.pregControl != "labor suppressors">>
 		_He2'll be going into labor any time now and _he2 knows it. _He2's terrified of the thought of _his2 water breaking during the fight.
diff --git a/src/uncategorized/seNonlethalPit.tw b/src/uncategorized/seNonlethalPit.tw
index 88e66ad0b21ed991e0f07a50ebbaec5b9a6e723e..7a9e0cfe1ce4a6d8bc0dcd5758bb3ef460166d35 100644
--- a/src/uncategorized/seNonlethalPit.tw
+++ b/src/uncategorized/seNonlethalPit.tw
@@ -194,7 +194,7 @@
 			$His swollen, <<print _fighterOne.bellyImplant>>cc implant filled belly is heavy and makes $him less effective.
 		<</if>>
 	<</if>>
-	<<if _fighterOne.labor == 1>>
+	<<if isInLabor(_fighterOne)>>
 		$He's feeling labor pains. $His child<<if _fighterOne.pregType > 1>>ren are<<else>> is<</if>> ready to be born, oblivious that it will put <<if _fighterOne.pregType > 1>>their<<else>>its<</if>> mother at the mercy of $his opponent.
 	<<elseif _fighterOne.preg >= _fighterOne.pregData.normalBirth && _fighterOne.pregControl != "labor suppressors">>
 		$He'll be going into labor any time now and $he knows it. $He's terrified of the thought of $his water breaking during the fight.
@@ -342,7 +342,7 @@
 			_His2 swollen, <<print _fighterTwo.bellyImplant>>cc implant filled belly is heavy and makes _him2 less effective.
 		<</if>>
 	<</if>>
-	<<if _fighterTwo.labor == 1>>
+	<<if isInLabor(_fighterTwo)>>
 		_He2's feeling labor pains. _His2 child<<if _fighterTwo.pregType > 1>>ren are<<else>> is<</if>> ready to be born, oblivious that it will put <<if _fighterTwo.pregType > 1>>their<<else>>its<</if>> mother at the mercy of _his2 opponent.
 	<<elseif _fighterTwo.preg >= _fighterTwo.pregData.normalBirth && _fighterTwo.pregControl != "labor suppressors">>
 		_He2'll be going into labor any time now and _he2 knows it. _He2's terrified of the thought of _his2 water breaking during the fight.
@@ -976,7 +976,7 @@
 		<<set _orifice = "mouth">>	/*this shouldn't ever actually be used*/
 	<</if>>
 
-	<<if ($activeSlave.muscles > -30) && ($activeSlave.weight <= 95) && ($activeSlave.health.condition >= -50) && ($activeSlave.bellyPreg <= 5000) && ($activeSlave.bellyImplant <= 4000) && ($activeSlave.labor == 0) && ($activeSlave.bellyFluid <= 2000)>>
+	<<if ($activeSlave.muscles > -30) && ($activeSlave.weight <= 95) && ($activeSlave.health.condition >= -50) && ($activeSlave.bellyPreg <= 5000) && ($activeSlave.bellyImplant <= 4000) && (!isInLabor($activeSlave)) && ($activeSlave.bellyFluid <= 2000)>>
 		<<set _canRun = 1>>
 	<<else>>
 		<<set _canRun = 0>>