diff --git a/devNotes/Useful JS Function Documentation.txt b/devNotes/Useful JS Function Documentation.txt
index d10014977a0b369b97116b53efb163d22c99c552..ce207214a82387fdc82dabee1d7052eae1ce41e7 100644
--- a/devNotes/Useful JS Function Documentation.txt	
+++ b/devNotes/Useful JS Function Documentation.txt	
@@ -351,6 +351,8 @@ $children = WombBirth($slave, $birth_ready_age) - for actual birth. Return array
 
 WombFlush($slave) - clean womb (array). Can be used at broodmother birthstorm or abortion situations in game. But birthstorm logically should use WombBirth($slave, 35) or so before - some children in this event is live capable, others is not.
 
+TerminatePregnancy($slave) - end a pregancy early, clean the womb, update the belly size, and automatically set an appropriate postpartum length.
+
 $slave.bellyPreg = WombGetWolume($slave) - return double, with current womb volume in CC - for updating $slave.bellyPreg, or if need to update individual fetuses sizes.
 
 findFather(ID) - searches for the ID given and returns an object or undefined
diff --git a/src/cheats/mod_EditChildCheatDatatypeCleanupNew.tw b/src/cheats/mod_EditChildCheatDatatypeCleanupNew.tw
index ffde781e01a55c811d38fc307269080de4fb3369..9ac0b8c1f7773a1ede8b558f13872d319296675a 100644
--- a/src/cheats/mod_EditChildCheatDatatypeCleanupNew.tw
+++ b/src/cheats/mod_EditChildCheatDatatypeCleanupNew.tw
@@ -172,10 +172,7 @@
 <</if>>
 <<if ($tempSlave.ovaries == 0) && ($tempSlave.mpreg == 0) && ($tempSlave.preg > 0)>>
 	<<print "Slave has no Ovaries and no Analwomb, Pregnancy reset to 0">><br>
-	<<set $tempSlave.preg = 0>>
-	<<set $tempSlave.pregType = 0>>
-	<<set $tempSlave.pregSource = 0>>
-	<<set $tempSlave.pregWeek = 0>>
+	<<run WombFlush($tempSlave)>>
 <</if>>
 <<if ($tempSlave.pubertyXX != 1) && ($tempSlave.physicalAge >= $tempSlave.pubertyAgeXX)>>
 	<<print "Slaves physical Age is equal or higher than female Puberty Age, Puberty set to 1 (Post Puberty)" >><br>
@@ -187,10 +184,7 @@
 <</if>>
 <<if ($tempSlave.pubertyXX == 0) && ($tempSlave.preg > 0)>>
 	<<print "Slave is not fertile (Pre-Puberty) and has no Anal Womb, pregnancy aborted!">><br>
-	<<set $tempSlave.preg = 0>>
-	<<set $tempSlave.pregType = 0>>
-	<<set $tempSlave.pregSource = 0>>
-	<<set $tempSlave.pregWeek = 0>>
+	<<run WombFlush($tempSlave)>>
 <</if>>
 <<if $tempSlave.balls < 0>>
 	<<print "Slave Balls Value set too low, reset to 0 (No Balls)">><br>
diff --git a/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw b/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw
index 718d50c919401a8648b14e3ba00bf881e1596419..9104d0b1dd330fdfd4d9e8f41509f78557692f4b 100644
--- a/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw
+++ b/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw
@@ -182,10 +182,6 @@
 <</if>>
 <<if ($tempSlave.ovaries == 0) && ($tempSlave.mpreg == 0) && ($tempSlave.preg > 0)>>
 	<<print "Slave has no ovaries and no anal womb, pregnancy reset to 0">><br>
-	<<set $tempSlave.preg = 0>>
-	<<set $tempSlave.pregType = 0>>
-	<<set $tempSlave.pregSource = 0>>
-	<<set $tempSlave.pregWeek = 0>>
 	<<run WombFlush($tempSlave)>>
 <</if>>
 <<if ($tempSlave.pubertyXX != 1) && ($tempSlave.physicalAge >= $tempSlave.pubertyAgeXX)>>
@@ -198,10 +194,6 @@
 <</if>>
 <<if ($tempSlave.pubertyXX == 0) && ($tempSlave.preg > 0)>>
 	<<print "Slave is not fertile (pre-puberty) and has no anal womb, pregnancy aborted">><br>
-	<<set $tempSlave.preg = 0>>
-	<<set $tempSlave.pregType = 0>>
-	<<set $tempSlave.pregSource = 0>>
-	<<set $tempSlave.pregWeek = 0>>
 	<<run WombFlush($tempSlave)>>
 <</if>>
 <<if (ndef $tempSlave.pubertyXY) && ($tempSlave.physicalAge >= $tempSlave.pubertyAgeXY)>>
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 64eb2e3db4c148c03f9f5f06ff61653071c87a39..97ed261888899f6b508d3c321441619e9b4b6a0a 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -1090,11 +1090,7 @@ window.DefaultRules = (function() {
 				}
 				V.reservedChildren = FetusGlobalReserveCount("incubator");
 				V.reservedChildrenNursery = FetusGlobalReserveCount("nursery");
-				slave.pregType = 0;
-				slave.pregSource = 0;
-				slave.pregKnown = 0;
-				slave.pregWeek = -2;
-				WombFlush(slave);
+				TerminatePregnancy(slave);
 			} else if (rule.abortion === "male") {
 				if (slave.preg < 4) {
 					let WL = slave.womb.length;
@@ -1106,11 +1102,7 @@ window.DefaultRules = (function() {
 						}
 					}
 					if (WL === 0) {
-						slave.pregType = 0;
-						slave.pregSource = 0;
-						slave.pregKnown = 0;
-						slave.pregWeek = -2;
-						WombFlush(slave);
+						TerminatePregnancy(slave);
 					}
 					r += `<br>${slave.slaveName}'s male fetuses have been terminated.`;
 				}
@@ -1125,11 +1117,7 @@ window.DefaultRules = (function() {
 						}
 					}
 					if (WL === 0) {
-						slave.pregType = 0;
-						slave.pregSource = 0;
-						slave.pregKnown = 0;
-						slave.pregWeek = -2;
-						WombFlush(slave);
+						TerminatePregnancy(slave);
 					}
 					r += `<br>${slave.slaveName}'s female fetuses have been terminated.`;
 				}
diff --git a/src/js/pregJS.js b/src/js/pregJS.js
index 70af3dd4caa999f7fced342a5a5a790652d67dc1..e9029a52ac368ea85f3006924a4b61e660f3929b 100644
--- a/src/js/pregJS.js
+++ b/src/js/pregJS.js
@@ -578,3 +578,28 @@ window.adjustFatherProperty = function(actor, property, newValue) {
 window.getBaseBoobs = function(slave) {
 	return slave.boobs - slave.boobsImplant - slave.boobsMilk - slave.boobsWombVolume;
 };
+
+/**
+ * Terminate a pregnancy without birth (i.e. miscarriage/abortion), while automatically applying the correct postpartum length
+ * @param {App.Entity.SlaveState} slave
+ */
+window.TerminatePregnancy = function(slave) {
+	if (slave.bellyPreg > 1500) {
+		// late term - highly fertile slaves spring back quicker
+		if (slave.geneticQuirks.fertility+slave.geneticQuirks.hyperFertility >= 4) {
+			slave.pregWeek = -2;
+		} else if (slave.geneticQuirks.hyperFertility > 1) {
+			slave.pregWeek = -3;
+		} else {
+			slave.pregWeek = -4;
+		}
+	} else if (slave.pregWeek >= 4) {
+		// still early
+		slave.pregWeek = -2;
+	} else if (slave.pregWeek > 0) {
+		// very early
+		slave.pregWeek = -1;
+	}
+	WombFlush(slave);
+	SetBellySize(slave);
+};
diff --git a/src/js/wombJS.js b/src/js/wombJS.js
index 31e9d06fa65f18cd1c09dc7c5a7c4831f37b1501..45772e30be60f8b61850735eb1ce44c02cc23b39 100644
--- a/src/js/wombJS.js
+++ b/src/js/wombJS.js
@@ -224,6 +224,7 @@ window.WombBirth = function(actor, readyAge) {
 
 window.WombFlush = function(actor) {
 	actor.womb = [];
+	WombUpdatePregVars(actor);
 };
 
 window.WombBirthReady = function(actor, readyAge) {
@@ -484,6 +485,9 @@ window.WombUpdatePregVars = function(actor) {
 		if (actor.womb[0].age >= 10 && actor.pregKnown === 0) {
 			actor.pregKnown = 1;
 		}
+	} else {
+		actor.pregType = 0;
+		WombNormalizePreg(actor);
 	}
 };
 
@@ -521,7 +525,7 @@ window.WombNormalizePreg = function(actor) {
 			actor.preg = 0.1;
 		}
 
-		if (actor.pregSource > 0) {
+		if (actor.pregSource !== 0) {
 			actor.pregSource = 0;
 		}
 
@@ -564,7 +568,7 @@ window.WombNormalizePreg = function(actor) {
 			actor.preg = 0;
 		}
 
-		if (actor.pregSource > 0) {
+		if (actor.pregSource !== 0) {
 			actor.pregSource = 0;
 		}
 
@@ -663,8 +667,7 @@ window.WombRemoveFetus = function(actor, fetusNum) {
 	if (actor.womb.length >= fetusNum) {
 		let ft = actor.womb[fetusNum];
 		actor.womb.splice(fetusNum, 1);
-		WombSort(actor);
-		WombNormalizePreg(actor);
+		WombUpdatePregVars(actor);
 		return ft;
 	} else {
 		return null;
@@ -726,7 +729,7 @@ window.WombCleanYYFetuses = function(actor) {
 
 		i--;
 	}
-	actor.pregType = actor.womb.length;
+	WombUpdatePregVars(actor);
 
 	return reserved;
 };
@@ -919,21 +922,3 @@ window.BCReserveInit = function() {
 		}
 	});
 };
-
-/* alt
-window.fetalSplit = function(actor, chance)
-{
-	let i, ft, nft;
-
-	actor.womb.forEach(function(s){
-		if ((jsRandom(1,chance) >= chance) && s.identical !== 1)
-		{
-			nft = clone(s);
-			actor.womb.push(nft);
-			s.identical = 1;
-		}
-	});
-	WombNormalizePreg(actor);
-
-}
-*/
diff --git a/src/npc/abort.tw b/src/npc/abort.tw
index cb590ca54be9543a18b18737cdc6b0bcd169bb69..b32c95ed0b95dd3055900f696266e8c1b2920f27 100644
--- a/src/npc/abort.tw
+++ b/src/npc/abort.tw
@@ -47,9 +47,4 @@ The remote surgery makes aborting a pregnancy quick and efficient.
 <<set $reservedChildren = FetusGlobalReserveCount("incubator")>>
 <<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
 
-<<set $activeSlave.pregType = 0>>
-<<set $activeSlave.pregSource = 0>>
-<<set $activeSlave.pregKnown = 0>>
-<<set $activeSlave.pregWeek = -2>>
-<<set WombFlush($activeSlave)>>
-<<run SetBellySize($activeSlave)>>
+<<run TerminatePregnancy($activeSlave)>>
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index f9a534b3b5f8f5d625668584e1781f0b8360f56a..c3f3b730197525693d74550fdadbe041ab7d598e 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -560,7 +560,7 @@ __You are customizing this slave:__
 	''Genes:''
 	<<option "XX" "XX" "$activeSlave.dick = 0, $activeSlave.balls = 0, $activeSlave.clit = 0, $activeSlave.pubertyXY = 0, $activeSlave.pubertyAgeXY = $potencyAge, $activeSlave.pubertyXX = ($activeSlave.pubertyAgeXX < $activeSlave.actualAge ? 1 : 0), $activeSlave.vagina = Math.max(0, $activeSlave.vagina), $activeSlave.boobs = Math.max(500, $activeSlave.boobs), $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.prostate = 0, $activeSlave.shoulders = either(-2,-1,0), $activeSlave.hips = either(-2,-1,0)">>
 		@@.yellow;XX@@ (Female)
-	<<option "XY" "XY" "$activeSlave.dick = 3, $activeSlave.vagina = -1, $activeSlave.preg = 0, WombFlush($activeSlave), $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.pubertyXY = ($activeSlave.pubertyAgeXY < $activeSlave.actualAge ? 1 : 0), $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0, $activeSlave.pubertyXX = 0, $activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.ovaries = 0, $activeSlave.boobs = 0, $activeSlave.balls = 3, $activeSlave.scrotum = 3, $activeSlave.prostate = 1, $activeSlave.shoulders = either(0,1,2), $activeSlave.hips = either(0,1,2)">>
+	<<option "XY" "XY" "$activeSlave.dick = 3, $activeSlave.vagina = -1, WombFlush($activeSlave), $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.pubertyXY = ($activeSlave.pubertyAgeXY < $activeSlave.actualAge ? 1 : 0), $activeSlave.pubertyXX = 0, $activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.ovaries = 0, $activeSlave.boobs = 0, $activeSlave.balls = 3, $activeSlave.scrotum = 3, $activeSlave.prostate = 1, $activeSlave.shoulders = either(0,1,2), $activeSlave.hips = either(0,1,2)">>
 		@@.yellow;XY@@ (Male)
 <</options>>
 
@@ -1079,7 +1079,7 @@ __You are customizing this slave:__
 <br>
 <<options $activeSlave.vagina>>
 	''Vagina:''
-	<<option -1 "No vagina" "$activeSlave.preg = 0, WombFlush($activeSlave), $activeSlave.belly = 0,$activeSlave.bellyPreg = 0, $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0,$activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.ovaries = 0">> //No vagina//.
+	<<option -1 "No vagina" "$activeSlave.preg = 0, WombFlush($activeSlave), $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.ovaries = 0">> //No vagina//.
 	<<option 0 "Virgin" "$activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1">> @@.lime;Virgin.@@
 	<<option 1 "Normal" "$activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1">> Normal.
 	<<option 2 "Veteran" "$activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1">> Veteran.
@@ -1117,7 +1117,7 @@ __You are customizing this slave:__
 		<br>
 		<<options $activeSlave.pubertyXX>>
 			''Puberty:''
-			<<option 0 "Prepubescent" "$activeSlave.pubertyAgeXX = $fertilityAge,$activeSlave.preg = 0,$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0, WombFlush($activeSlave)">> Prepubescent.
+			<<option 0 "Prepubescent" "$activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, WombFlush($activeSlave)">> Prepubescent.
 			<<option 1 "Postpubescent">> Postpubescent.
 		<</options>>
 		<br>
diff --git a/src/pregmod/analyzePregnancy.tw b/src/pregmod/analyzePregnancy.tw
index e7eef95b97f76f070718685f4bed526deb7145c6..23fd2077b5a0b7c7643cab46fa628390acdb7d82 100644
--- a/src/pregmod/analyzePregnancy.tw
+++ b/src/pregmod/analyzePregnancy.tw
@@ -254,7 +254,7 @@
 			Rename: <<textbox "_tempName" _tempName >> [[Apply | Analyze Pregnancy][$activeSlave.womb[_ap].genetics.name = _tempName]]
 			<<if $activeSlave.womb[_ap].age < 4 && ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || $activeSlave.breedingMark == 0 || $propOutcome == 0 || ($activeSlave.womb[_ap].fatherID != -1 && $activeSlave.womb[_ap].fatherID != -6))>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
-				<<link "Terminate ovum" "Analyze Pregnancy">><<run WombRemoveFetus($activeSlave, _ap)>><</link>>
+				<<link "Terminate ovum" "Analyze Pregnancy">><<run WombRemoveFetus($activeSlave, _ap)>><<if $activeSlave.preg == 0>><<set $activeSlave.pregWeek = -1>><</if>><</link>>
 				<<if $surgeryUpgrade == 1>>
 					| [[Transplant ovum|Ova Transplant Workaround][$donatrix = $activeSlave, $wombIndex = _ap, $nextLink = "Analyze Pregnancy"]]
 				<</if>>
@@ -302,7 +302,7 @@
 			Unidentified ova found, no detailed data available.<br>&nbsp;&nbsp;&nbsp;&nbsp;
 			Age: too early for scan.
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			<<link "Terminate ovum" "Analyze Pregnancy">><<run WombRemoveFetus($activeSlave, _ap)>><</link>>
+			<<link "Terminate ovum" "Analyze Pregnancy">><<run WombRemoveFetus($activeSlave, _ap)>><<if $activeSlave.preg == 0>><<set $activeSlave.pregWeek = -1>><</if>><</link>>
 			<<if $surgeryUpgrade == 1>>
 				| [[Transplant ovum|Ova Transplant Workaround][$donatrix = $activeSlave, $wombIndex = _ap, $nextLink = "Analyze Pregnancy"]]
 			<</if>>
diff --git a/src/pregmod/birthStorm.tw b/src/pregmod/birthStorm.tw
index 770552a677b85945ea93dc2c70277d1fb03867eb..b0371d80413effde9c30400b886fac6f9ea94f45 100644
--- a/src/pregmod/birthStorm.tw
+++ b/src/pregmod/birthStorm.tw
@@ -519,9 +519,6 @@ The remote surgery allows the removal of the pregnancy generator through convent
 <<else>>
 	<<set $activeSlave.pregWeek = -4>>
 <</if>>
-<<set $activeSlave.pregType = 0>>
-<<set $activeSlave.pregSource = 0>>
-<<set $activeSlave.pregKnown = 0>>
 <<set WombFlush($activeSlave)>>
 <<set $activeSlave.broodmother = 0>>
 <<run SetBellySize($activeSlave)>>
diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw
index 648df7670dfccc393f89b6b4f0b8176b1f70e836..dec16ce95ec10b9a31d2b626e4eee7e8fbc1186d 100644
--- a/src/pregmod/managePersonalAffairs.tw
+++ b/src/pregmod/managePersonalAffairs.tw
@@ -462,7 +462,7 @@ __Contraceptives and Fertility__
 <<if $PC.preg < 6 && $PC.pregKnown == 1>>
 	Your period is late, so the first thing you do is test yourself for a potential pregnancy: @@.lime;you are pregnant.@@
 	<<if ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || ($PC.pregSource != -1 && $PC.pregSource != -6))>>
-		<<link "Abort your child">><<replace "#miniscene">><<set $PC.preg = 0, $PC.pregType = 0, $PC.pregSource = 0, $PC.pregKnown = 0, $PC.pregWeek = 0>><<set WombFlush($PC)>><<print "You take a syringe filled with abortifacients and make yourself comfortable. Injecting the vial through your belly into your womb, your close your eyes and wait for what is coming. Once you feel it is over, you clean yourself up and go on your way, child free.">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+		<<link "Abort your child">><<replace "#miniscene">><<run TerminatePregnancy($PC)>><<print "You take a syringe filled with abortifacients and make yourself comfortable. Injecting the vial through your belly into your womb, your close your eyes and wait for what is coming. Once you feel it is over, you clean yourself up and go on your way, child free.">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
 	<</if>>
 <<elseif $PC.labor == 1>>
 	You are beginning to feel contractions; you'll be giving birth soon.
@@ -471,7 +471,7 @@ __Contraceptives and Fertility__
 <<elseif $PC.pregKnown == 1>>
 	You're pregnant, something rather unbecoming for an arcology owner.
 	<<if ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || ($PC.pregSource != -1 && $PC.pregSource != -6))>>
-		<<link "Abort your child">><<replace "#miniscene">><<set $PC.preg = 0, $PC.pregWeek = -2, $PC.pregType = 0, $PC.pregSource = 0, $PC.belly = 0, $PC.pregKnown = 0>><<set WombFlush($PC)>><<print "You take a syringe filled with abortifacients and make yourself comfortable. Injecting the vial through your belly into your womb, your close your eyes and wait for what is coming. Once you feel it is over, you clean yourself up and go on your way, child free.">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+		<<link "Abort your child">><<replace "#miniscene">><<run TerminatePregnancy($PC)>><<print "You take a syringe filled with abortifacients and make yourself comfortable. Injecting the vial through your belly into your womb, your close your eyes and wait for what is coming. Once you feel it is over, you clean yourself up and go on your way, child free.">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
 	<</if>>
 <</if>>
 </span>
@@ -539,7 +539,7 @@ In total, you have given birth to:
 <<elseif $PC.preg > 0>>
 	Your fertile pussy has been thoroughly seeded; there is a chance you are pregnant.
 	<<if ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || ($PC.pregSource != -1 && $PC.pregSource != -6))>>
-		<<link "Pop some morning after pills">><<set $PC.preg = 0, $PC.pregWeek = 0, $PC.pregType = 0, $PC.pregSource = 0, $PC.pregKnown = 0>><<set WombFlush($PC)>><<goto "Manage Personal Affairs">><</link>>
+		<<link "Pop some morning after pills">><<set WombFlush($PC)>><<goto "Manage Personal Affairs">><</link>>
 	<</if>>
 <<elseif $PC.pregWeek < 0>>
 	You're still recovering from your recent pregnancy.
diff --git a/src/pregmod/personalNotes.tw b/src/pregmod/personalNotes.tw
index 07f94e3b6d481e1cbec8c4b9027a61582c469fc6..107146bd8eea66eca10f1f17db64d007f78bac09 100644
--- a/src/pregmod/personalNotes.tw
+++ b/src/pregmod/personalNotes.tw
@@ -51,13 +51,11 @@
 			While making use of the advanced pregnancy monitoring equipment, you are surprised to find @@.orange;your womb houses less life than last checkup.@@
 			<<if $PC.pregType == 0>>
 				For all intents and purposes, @@.yellow;you are no longer pregnant.@@
-				<<set WombFlush($PC), $PC.pregKnown = 0, $PC.pregWeek = 0>>
-				<<run SetBellySize($PC)>>
+				<<run TerminatePregnancy($PC)>>
 			<</if>>
 		<</if>>
 	<<elseif _oldCount > $PC.pregType && $PC.pregType == 0>>
-		<<set WombFlush($PC), $PC.pregKnown = 0, $PC.pregWeek = 0>>
-		<<run SetBellySize($PC)>>
+		<<run TerminatePregnancy($PC)>>
 	<</if>>
 	<<if $PC.preg == 15>>
 		<<if $PC.pregKnown == 0>>
diff --git a/src/pregmod/saAgent.tw b/src/pregmod/saAgent.tw
index d01c6aa1ade7875657e7a6128f712c269e650441..6770da9087ab7339f655dbcad46da93acfc554e6 100644
--- a/src/pregmod/saAgent.tw
+++ b/src/pregmod/saAgent.tw
@@ -454,7 +454,7 @@
 <</if>>
 
 <<if ($slaves[$i].preg > $slaves[$i].pregData.minLiveBirth) && ($slaves[$i].broodmother == 0) && (random(1,100) < 90)>>
-	<<set $slaves[$i].counter.birthsTotal += WombBirthReady($slaves[$i], $slaves[$i].pregData.minLiveBirth), WombBirth($slaves[$i], $slaves[$i].pregData.minLiveBirth), WombFlush($slaves[$i]), $slaves[$i].preg = 0, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0 >>
+	<<set $slaves[$i].counter.birthsTotal += WombBirthReady($slaves[$i], $slaves[$i].pregData.minLiveBirth), WombBirth($slaves[$i], $slaves[$i].pregData.minLiveBirth), WombFlush($slaves[$i])>>
 	<<if $slaves[$i].geneticQuirks.fertility+$slaves[$i].geneticQuirks.hyperFertility >= 4>>
 		<<set $slaves[$i].pregWeek = -2>>
 	<<elseif $slaves[$i].geneticQuirks.hyperFertility > 1>>
@@ -466,7 +466,7 @@
 		<<set $slaves[$i].birthsTat++>>
 	<</if>>
 <<elseif ($slaves[$i].preg > $slaves[$i].pregData.normalBirth) && ($slaves[$i].broodmother == 0)>>
-	<<set $slaves[$i].counter.birthsTotal += WombBirthReady($slaves[$i], $slaves[$i].pregData.minLiveBirth), WombBirth($slaves[$i], $slaves[$i].pregData.minLiveBirth), WombFlush($slaves[$i]), $slaves[$i].preg = 0, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0>>
+	<<set $slaves[$i].counter.birthsTotal += WombBirthReady($slaves[$i], $slaves[$i].pregData.minLiveBirth), WombBirth($slaves[$i], $slaves[$i].pregData.minLiveBirth), WombFlush($slaves[$i])>>
 	<<if $slaves[$i].geneticQuirks.fertility+$slaves[$i].geneticQuirks.hyperFertility >= 4>>
 		<<set $slaves[$i].pregWeek = -2>>
 	<<elseif $slaves[$i].geneticQuirks.hyperFertility > 1>>
diff --git a/src/pregmod/saClothes.tw b/src/pregmod/saClothes.tw
index be2f874c96bd266eeb2bdeb5656274b8f240341b..6bc875d5f3b81393c87a9bc3ca7975f57a6fe91a 100644
--- a/src/pregmod/saClothes.tw
+++ b/src/pregmod/saClothes.tw
@@ -434,15 +434,7 @@
 			The tight corseting has @@.orange;caused $him to miscarry,@@ which @@.red;damages $his health.@@
 			<<run healthDamage($slaves[$i], 20)>>
 			<<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>>
-			<<set $slaves[$i].pregType = 0, WombFlush($slaves[$i]), $slaves[$i].pregKnown = 0>>
-			<<if $slaves[$i].geneticQuirks.fertility+$slaves[$i].geneticQuirks.hyperFertility >= 4>>
-				<<set $slaves[$i].pregWeek = -2>>
-			<<elseif $slaves[$i].geneticQuirks.hyperFertility > 1>>
-				<<set $slaves[$i].pregWeek = -3>>
-			<<else>>
-				<<set $slaves[$i].pregWeek = -4>>
-			<</if>>
-			<<run SetBellySize($slaves[$i])>>
+			<<run TerminatePregnancy($slaves[$i])>>
 			<<if $slaves[$i].fuckdoll == 0 && $slaves[$i].fetish != "mindbroken">>
 				<<if $slaves[$i].devotion < -50>>
 					$He is @@.mediumorchid;filled with violent, consuming hatred@@ and @@.gold;fear.@@ Even though $he knew $his baby was destined for a slave orphanage, it seems $he cared for it and views you as its killer.
@@ -804,15 +796,7 @@
 				The dildo penetrating $his womb @@.orange;caused $him to miscarry,@@ which @@.red;damages $his health.@@
 				<<run healthDamage($slaves[$i], 20)>>
 				<<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>>
-				<<set $slaves[$i].pregType = 0, WombFlush($slaves[$i]), $slaves[$i].pregKnown = 0>>
-				<<if $slaves[$i].geneticQuirks.fertility+$slaves[$i].geneticQuirks.hyperFertility >= 4>>
-					<<set $slaves[$i].pregWeek = -2>>
-				<<elseif $slaves[$i].geneticQuirks.hyperFertility > 1>>
-					<<set $slaves[$i].pregWeek = -3>>
-				<<else>>
-					<<set $slaves[$i].pregWeek = -4>>
-				<</if>>
-				<<run SetBellySize($slaves[$i])>>
+				<<run TerminatePregnancy($slaves[$i])>>
 				$He is
 				<<if $slaves[$i].devotion < -50>>
 					@@.mediumorchid;filled with violent, consuming hatred@@ and @@.gold;fear.@@ Even though $he knew $his baby was destined for a slave orphanage, it seems $he cared for it and views you as its killer.
diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw
index 1351f6b2aeefdef37ed4c644160273bb0f4bbb34..b46ffe10d25e019bb0a485684bc0a1840d62acd3 100644
--- a/src/pregmod/sePlayerBirth.tw
+++ b/src/pregmod/sePlayerBirth.tw
@@ -561,7 +561,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 <</if>> /*closes SE*/
 
 /* belly sag is a thing now, USE IT! */
-<<set _badBirth = 0, $PC.pregSource = 0, $PC.pregType = 0, $PC.belly = 2000, WombFlush($PC)>>
+<<set _badBirth = 0, WombFlush($PC)>>
 <<if $PC.geneticQuirks.fertility+$PC.geneticQuirks.hyperFertility >= 4>>
 	<<set $PC.pregWeek = -2>>
 <<elseif $PC.geneticQuirks.hyperFertility == 2>>
diff --git a/src/uncategorized/lawCompliance.tw b/src/uncategorized/lawCompliance.tw
index 7cede15a9637fd32d2562a38579be923168c555e..4e4894c420a9ccc2848964da6973220e6a5370ae 100644
--- a/src/uncategorized/lawCompliance.tw
+++ b/src/uncategorized/lawCompliance.tw
@@ -104,11 +104,7 @@
 <</if>>
 <<if $arcologies[0].FSRestartSMR == 1>>
 	<<if $activeSlave.balls > 0 || $activeSlave.ovaries > 0>>
-		<<set $activeSlave.preg = -2>>
-		<<set $activeSlave.pregType = 0>>
-		<<set $activeSlave.pregKnown = 0>>
-		<<set WombFlush($activeSlave)>>
-		<<run SetBellySize($activeSlave)>>
+		<<run TerminatePregnancy($activeSlave)>>
 		<<set $activeSlave.balls = 0>>
 		<<set $activeSlave.ovaries = 0>>
 		As a member of the lowest class,<<if $activeSlave.preg > 0>> $his pregnancy is immediately terminated, and<</if>> $he is promptly sterilized to prevent $him from passing on $his useless genes.
@@ -504,11 +500,7 @@
 			<</if>>
 			to prevent $him from passing on $his inferior genes, @@.mediumorchid;infuriating@@ and @@.gold;terrifying@@ $him.
 			Furthermore, $his <<if $activeSlave.preg > 0>>pregnancy was terminated and afterwards $his <</if>>tubes were promptly tied to prevent $him from passing on $his inferior genes, @@.mediumorchid;saddening@@ and @@.gold;frightening@@ $him.
-			<<set $activeSlave.preg = -2>>
-			<<set $activeSlave.pregType = 0>>
-			<<set $activeSlave.pregKnown = 0>>
-			<<set WombFlush($activeSlave)>>
-			<<run SetBellySize($activeSlave)>>
+			<<run TerminatePregnancy($activeSlave)>>
 			<<set $activeSlave.devotion -= 30>>
 			<<set $activeSlave.trust -= 30>>
 		<<elseif $activeSlave.balls > 0>>
@@ -525,11 +517,7 @@
 			<<set $activeSlave.devotion -= 20, $activeSlave.trust -= 20>>
 		<<elseif (isFertile($activeSlave) || $activeSlave.preg > 0)>>
 			$His <<if $activeSlave.preg > 0>>pregnancy was terminated and afterwards $his <</if>>tubes were promptly tied to prevent $him from passing on $his inferior genes, @@.mediumorchid;saddening@@ and @@.gold;frightening@@ $him.
-			<<set $activeSlave.preg = -2>>
-			<<set $activeSlave.pregType = 0>>
-			<<set $activeSlave.pregKnown = 0>>
-			<<set WombFlush($activeSlave)>>
-			<<run SetBellySize($activeSlave)>>
+			<<run TerminatePregnancy($activeSlave)>>
 			<<set $activeSlave.devotion -= 10>>
 			<<set $activeSlave.trust -= 10>>
 		<<else>>
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index 9a6d680b4affaaafc16a24537cab9a2bdf60c184..41e5b1fc15a9ab5c3ac43f1b3f7646b7b6c3aca3 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -721,13 +721,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 		<</replace>>
 		<<set $activeSlave.devotion += 4>>
 		<<set $activeSlave.trust += 3>>
-		<<set $activeSlave.preg = 0>>
-		<<set WombFlush($activeSlave)>>
-		<<set $activeSlave.pregType = 0>>
-		<<set $activeSlave.pregSource = 0>>
-		<<set $activeSlave.pregKnown = 0>>
-		<<set $activeSlave.pregWeek = -4>>
-		<<run SetBellySize($activeSlave)>>
+		<<run TerminatePregnancy($activeSlave)>>
 	<</link>>
 	<br>
 <<case "$He submitted to enslavement for a better chance at survival than $he had as a migrant.">>
@@ -1373,11 +1367,8 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 				<<= FutureSocieties.Change("Eugenics", 2)>>
 			<</if>>
 		<</replace>>
-		<<set WombFlush($activeSlave)>>
+		<<set TerminatePregnancy($activeSlave)>>
 		<<set $activeSlave.preg = -3>>
-		<<set $activeSlave.pregWeek = -4>>
-		<<set $activeSlave.pregKnown = 0>>
-		<<run SetBellySize($activeSlave)>>
 		<<set $activeSlave.ovaries = 0>>
 		<<run surgeryDamage($activeSlave, 10)>>
 	<</link>>
@@ -1471,8 +1462,8 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 				<<= FutureSocieties.Change("Eugenics", 3)>>
 			<</if>>
 		<</replace>>
-		<<set $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, $activeSlave.pregKnown = 0, $activeSlave.pregSource = 0, $activeSlave.pregType = 0, $activeSlave.pregWeek = -4, $activeSlave.vagina = -1, $activeSlave.skill.vaginal = 0>>
-		<<run SetBellySize($activeSlave), surgeryDamage($activeSlave, 10)>>
+		<<set $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, TerminatePregnancy($activeSlave), $activeSlave.vagina = -1, $activeSlave.skill.vaginal = 0>>
+		<<run surgeryDamage($activeSlave, 10)>>
 		<<set $activeSlave.trust = Math.clamp($activeSlave.trust-100, -100, 100)>>
 	<</link>>
 <</if>>
diff --git a/src/uncategorized/pCoupAttempt.tw b/src/uncategorized/pCoupAttempt.tw
index 70084bbd5644a551bac38d88e10e68cf586d2074..a91ef12f38e398d17e930ad4a143dff861dd2bee 100644
--- a/src/uncategorized/pCoupAttempt.tw
+++ b/src/uncategorized/pCoupAttempt.tw
@@ -8,7 +8,7 @@
 	<<set WombProgress($traitor, _pregWeeks, _pregWeeks)>> /* In all cases should be done */
 	<<set WombUpdatePregVars($traitor)>>
 	<<if WombBirthReady($traitor, $traitor.pregData.normalBirth) > 0 >> /* normal birth case, partial birthers not supported*/
-		<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth), $traitor.pregType = 0, $traitor.pregSource = 0, $traitor.pregWeek = 0, $traitor.pregKnown = 0>>
+		<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth)>>
 		<<set WombFlush($traitor)>>
 	<<else>>/* still pregnant slave */
 		<<set $traitor.preg = WombMaxPreg($traitor)>> /*most ready fetus is a base*/
diff --git a/src/uncategorized/pCoupBetrayal.tw b/src/uncategorized/pCoupBetrayal.tw
index d73b9abaa5c3a4b1cbd0972aaa8be4187ed743a4..4cc634a8be6630fa0320cb474089d57e050f71e4 100644
--- a/src/uncategorized/pCoupBetrayal.tw
+++ b/src/uncategorized/pCoupBetrayal.tw
@@ -7,7 +7,7 @@
 <<set WombProgress($traitor, _pregWeeks, _pregWeeks)>> /* In all cases should be done */
 <<set WombUpdatePregVars($traitor)>>
 <<if WombBirthReady($traitor, $traitor.pregData.normalBirth) > 0 >> /* normal birth case, partial birthers not supported*/
-	<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth), $traitor.pregType = 0, $traitor.pregSource = 0, $traitor.pregWeek = 0, $traitor.pregKnown = 0>>
+	<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth)>>
 	<<set WombFlush($traitor)>>
 <<else>>/* still pregnant slave */
 	<<set $traitor.preg = WombMaxPreg($traitor)>> /*most ready fetus is a base*/
diff --git a/src/uncategorized/pCoupCollaboration.tw b/src/uncategorized/pCoupCollaboration.tw
index 0f3fcfaa986d8d31e3c2c5af5ed6f4e062df7263..e2e2812f929005e0678aab70073baf79f2aab1b6 100644
--- a/src/uncategorized/pCoupCollaboration.tw
+++ b/src/uncategorized/pCoupCollaboration.tw
@@ -8,7 +8,7 @@
 	<<set WombProgress($traitor, _pregWeeks, _pregWeeks)>> /* In all cases should be done */
 	<<set WombUpdatePregVars($traitor)>>
 	<<if WombBirthReady($traitor, $traitor.pregData.normalBirth) > 0 >> /* normal birth case, partial birthers not supported*/
-		<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth), $traitor.pregType = 0, $traitor.pregSource = 0, $traitor.pregWeek = 0, $traitor.pregKnown = 0>>
+		<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth)>>
 		<<set WombFlush($traitor)>>
 	<<else>>/* still pregnant slave */
 		<<set $traitor.preg = WombMaxPreg($traitor)>> /*most ready fetus is a base*/
diff --git a/src/uncategorized/pCoupLoss.tw b/src/uncategorized/pCoupLoss.tw
index dcfc483a47233ee08088cf279aaefa878232301c..0b5b68ad0766c9072abdcfd235d524100b907aee 100644
--- a/src/uncategorized/pCoupLoss.tw
+++ b/src/uncategorized/pCoupLoss.tw
@@ -7,7 +7,7 @@
 	<<set WombProgress($traitor, _pregWeeks, _pregWeeks)>> /* In all cases should be done */
 	<<set WombUpdatePregVars($traitor)>>
 	<<if WombBirthReady($traitor, $traitor.pregData.normalBirth) > 0 >> /* normal birth case, partial birthers not supported*/
-		<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth), $traitor.pregType = 0, $traitor.pregSource = 0, $traitor.pregWeek = 0, $traitor.pregKnown = 0>>
+		<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth)>>
 		<<set WombFlush($traitor)>>
 	<<else>>/* still pregnant slave */
 		<<set $traitor.preg = WombMaxPreg($traitor)>> /*most ready fetus is a base*/
diff --git a/src/uncategorized/pTraitorMessage.tw b/src/uncategorized/pTraitorMessage.tw
index bedc6851c12f8e77795c3922279c8d474c829f85..3ba720727e70dd85f108657612b1a7c321abd571 100644
--- a/src/uncategorized/pTraitorMessage.tw
+++ b/src/uncategorized/pTraitorMessage.tw
@@ -15,10 +15,10 @@
 <<set WombProgress($traitor, _pregWeeks, _pregWeeks)>> /* In all cases should be done */
 <<set WombUpdatePregVars($traitor)>>
 <<if $traitor.broodmother > 0>> /* Broodmother implant is assumed as removed.*/
-	<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, 37), $traitor.pregType = 0, $traitor.pregSource = 0, $traitor.pregWeek = 0, $traitor.pregKnown = 0, $traitor.broodmother == 0, $traitor.broodmotherFetuses = 0>>
+	<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, 37), $traitor.broodmother == 0, $traitor.broodmotherFetuses = 0>>
 	<<set WombFlush($traitor)>>
 <<elseif WombBirthReady($traitor, $traitor.pregData.normalBirth) > 0 >> /* normal birth case, partial birthers not supported*/
-	<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth), $traitor.pregType = 0, $traitor.pregSource = 0, $traitor.pregWeek = 0, $traitor.pregKnown = 0>>
+	<<set $traitor.preg = -1, $traitor.counter.birthsTotal += WombBirthReady($traitor, $traitor.pregData.normalBirth)>>
 	<<set WombFlush($traitor)>>
 <<else>>/* still pregnant slave */
 	<<set $traitor.preg = WombMaxPreg($traitor)>> /*most ready fetus is a base*/
diff --git a/src/uncategorized/reBoomerang.tw b/src/uncategorized/reBoomerang.tw
index 50bed2c7624ae2f193b8f13002804dc98d87b6b5..9e91639d401dddd5f28d6be203f9a0d3eb9a0454 100644
--- a/src/uncategorized/reBoomerang.tw
+++ b/src/uncategorized/reBoomerang.tw
@@ -26,10 +26,10 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 <<set WombProgress($activeSlave, _pregWeeks, _pregWeeks)>> /* In all cases should be done */
 <<set WombUpdatePregVars($activeSlave)>>
 <<if $activeSlave.broodmother > 0>> /* Broodmother implant is assumed as removed.*/
-	<<set $activeSlave.preg = -1, $activeSlave.counter.birthsTotal += WombBirthReady($activeSlave, 37), $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0, $activeSlave.broodmother == 0, $activeSlave.broodmotherFetuses = 0>>
+	<<set $activeSlave.preg = -1, $activeSlave.counter.birthsTotal += WombBirthReady($activeSlave, 37), $activeSlave.broodmother == 0, $activeSlave.broodmotherFetuses = 0>>
 	<<set WombFlush($activeSlave)>>
 <<elseif WombBirthReady($activeSlave, $activeSlave.pregData.normalBirth) > 0 >> /* normal birth case, partial birthers not supported*/
-	<<set $activeSlave.preg = -1, $activeSlave.counter.birthsTotal += WombBirthReady($activeSlave, $activeSlave.pregData.normalBirth), $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>>
+	<<set $activeSlave.preg = -1, $activeSlave.counter.birthsTotal += WombBirthReady($activeSlave, $activeSlave.pregData.normalBirth)>>
 	<<set WombFlush($activeSlave)>>
 <<else>>/* still pregnant slave */
 	<<set $activeSlave.preg = WombMaxPreg($activeSlave)>> /*most ready fetus is a base*/
@@ -37,21 +37,6 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 <</if>>
 <<run SetBellySize($activeSlave)>> /*In any case it's useful to do.*/
 
-/* old code, commented out.
-<<if $activeSlave.broodmother > 0>>
-	<<set $activeSlave.preg = -1, $activeSlave.counter.birthsTotal += $activeSlave.pregType, $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0, $activeSlave.broodmother == 0>>
-	<<run SetBellySize($activeSlave)>>
-<</if>>
-<<if $activeSlave.preg > 0>>
-	<<set $activeSlave.preg += _weeks>>
-	<<set $activeSlave.pregWeek += _weeks>>
-	<<if $activeSlave.preg > $activeSlave.pregData.normalBirth>>
-		<<set $activeSlave.preg = -1, $activeSlave.counter.birthsTotal += $activeSlave.pregType, $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>>
-	<</if>>
-	<<run SetBellySize($activeSlave)>>
-<</if>>
-*/
-
 /* ------------------ pregnancy setup end here-----------------
 	As no broodmother cases in code below, it's no need to setup every case of impregnation through new system. Backup mechanic will do it for normal pregnancies.
 */
@@ -179,7 +164,7 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 <<case "degradationist arcology">>
 	"It wa<<s>> horrible." You sold $him to a Degradationist arcology; it's nothing short of incredible that $he managed to get back here. $He must have sold and traded $himself without hesitation.
 	<<if $activeSlave.ovaries>>
-		<<set $activeSlave.ovaries = 0, $activeSlave.preg = 0, WombFlush($activeSlave), $activeSlave.pregType = 0, $activeSlave.vagina = 4, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>>
+		<<set $activeSlave.ovaries = 0, WombFlush($activeSlave), $activeSlave.vagina = 4>>
 		<<run SetBellySize($activeSlave)>>
 		"They f-fi<<x>>ed me, t-to '<<s>>ave on maintenan<<c>>e of my cunt,'
 	<<elseif $activeSlave.balls>>
@@ -298,7 +283,7 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 	<<set $activeSlave.behavioralFlaw = "odd", $activeSlave.sexualFlaw = "apathetic">>
 <<case "harvester">>
 	"I'm ju<<s>>t kept in a pen unle<<ss>> they're d-doing <<s>>urgery on me." It's not surprising; you did sell $him to an organ farm. What's unexpected is that $he's still alive. They must be removing the less essential parts gradually. "I'm going to die," $he <<say>>s hollowly. "Ne<<x>>t <<s>>urgery, I won't wake up."
-	<<set $activeSlave.balls = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, $activeSlave.pregType = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>>
+	<<set $activeSlave.balls = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, WombFlush($activeSlave)>>
 	<<run SetBellySize($activeSlave)>>
 	<<set $activeSlave.behavioralFlaw = "hates men", $activeSlave.sexualFlaw = "crude">>
 <<case "D butt bury">>
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index 19ce898b41a5768e30bd215dfaf7a0ed8988c362..4be46e0b8d9a39e5923f703af3578a28d60606be 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -137,10 +137,6 @@
 	<<set $activeSlave.lactationDuration = 0>>
 	<<set $activeSlave.boobsMilk = 0>>
 	<<set $activeSlave.induceLactation = 0>>
-	<<set $activeSlave.preg = 0>>
-	<<set $activeSlave.pregType = 0>>
-	<<set $activeSlave.pregWeek = 0>>
-	<<set $activeSlave.pregKnown = 0>>
 	<<set WombFlush($activeSlave)>>
 	<<run SetBellySize($activeSlave)>>
 	<<set $activeSlave.clone = 0>>
diff --git a/src/uncategorized/recETS.tw b/src/uncategorized/recETS.tw
index 69e81460262c4fd6fdd47afa7b2f803cf347105f..bb84e6d84d86d710560baee15b69d0ccef6fcef7 100644
--- a/src/uncategorized/recETS.tw
+++ b/src/uncategorized/recETS.tw
@@ -831,11 +831,6 @@
 <<set $activeSlave.vagina = -1>>
 <<set $activeSlave.pubertyXX = 0>>
 <<set $activeSlave.pubertyXY = 1>>
-<<set $activeSlave.preg = 0>>
-<<set $activeSlave.pregKnown = 0>>
-<<set $activeSlave.pregWeek = 0>>
-<<set $activeSlave.pregType = 0>>
-<<set $activeSlave.pregSource = 0>>
 <<set WombFlush($activeSlave)>>
 <<run SetBellySize($activeSlave)>>
 <<set $activeSlave.dick = 2>>
@@ -935,11 +930,6 @@
 <<set $activeSlave.vagina = -1>>
 <<set $activeSlave.pubertyXX = 0>>
 <<set $activeSlave.pubertyXY = 1>>
-<<set $activeSlave.preg = 0>>
-<<set $activeSlave.pregType = 0>>
-<<set $activeSlave.pregSource = 0>>
-<<set $activeSlave.pregKnown = 0>>
-<<set $activeSlave.pregWeek = 0>>
 <<set WombFlush($activeSlave)>>
 <<run SetBellySize($activeSlave)>>
 <<set $activeSlave.dick = 2>>
@@ -1258,10 +1248,6 @@
 	<<set $activeSlave.trust -= 5>>
 	<<set $activeSlave.oldDevotion = $activeSlave.devotion>>
 	<<set $activeSlave.genes = "XY">>
-	<<set $activeSlave.preg = 0>>
-	<<set $activeSlave.pregType = 0>>
-	<<set $activeSlave.pregKnown = 0>>
-	<<set $activeSlave.pregWeek = 0>>
 	<<set $activeSlave.pregAdaptation = 10>>
 	<<set WombFlush($activeSlave)>>
 	<<run SetBellySize($activeSlave)>>
@@ -1322,8 +1308,6 @@
 	<<set $activeSlave.devotion -= 5>>
 	<<set $activeSlave.trust -= 5>>
 	<<set $activeSlave.oldDevotion = $activeSlave.devotion>>
-	<<set $activeSlave.preg = 0>>
-	<<set $activeSlave.pregType = 0>>
 	<<set $activeSlave.labor = 0>>
 	<<set $activeSlave.counter.birthsTotal = 0>>
 	<<set $activeSlave.anus = 0>>
diff --git a/src/uncategorized/saDrugs.tw b/src/uncategorized/saDrugs.tw
index 8920814242646e111a811a7b1d7bc038de70e00f..8ccd458de10c7f6202031975233ed9f8fd1e0457 100644
--- a/src/uncategorized/saDrugs.tw
+++ b/src/uncategorized/saDrugs.tw
@@ -1195,7 +1195,7 @@
 		<<if $slaves[$i].health.health <= -100>>
 			$His critically poor health @@.orange;caused $him to miscarry.@@
 			<<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>>
-			<<set $slaves[$i].pregType = 0, $slaves[$i].pregSource = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregKnown = 0, WombFlush($slaves[$i]), SetBellySize($slaves[$i])>>
+			<<set TerminatePregnancy($slaves[$i])>>
 			<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>>
 				$He is
 				<<if $slaves[$i].devotion < -50>>
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index 652d38105c66d6d1506ed86930d6988149c94a5f..755a936d2a6381b7d863b93ae1c6c07b1cba17f1 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -341,8 +341,7 @@
 		<<= knockMeUp($slaves[$i], 100, 2, $HeadGirl.ID, 1)>>
 	<<elseif $HeadGirl.fetish != "pregnancy" && $arcologies[0].FSRepopulationFocusPregPolicy == 0 && $slaves[$i].pregKnown == 1 && $slaves[$i].preg < 30 && $arcologies[0].FSRepopulationFocus == "unset" && $HGSuiteDrugs == 1>>
 		$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.
-		<<set $slaves[$i].preg = 0, WombFlush($slaves[$i]), $slaves[$i].pregType = 0, $slaves[$i].pregSource = 0, $slaves[$i].pregWeek = 0, $slaves[$i].pregKnown = 0>>
-		<<run SetBellySize($slaves[$i])>>
+		<<run TerminatePregnancy($slaves[$i])>>
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 29ef7a347de493c17ecd16aa3ddefd6fc5223fec..438e65c29f81fbee1a7f7ac91158cba9bfe3a52e 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -3953,27 +3953,11 @@
 			During $his weekly monitoring, it is discovered that $his womb is now home to @@.orange;less ova than last checkup.@@
 			<<if $slaves[$i].pregType == 0>>
 				For all intent and purposes, @@.yellow;$he is no longer pregnant.@@
-				<<set WombFlush($slaves[$i]), $slaves[$i].pregKnown = 0>>
-				<<if $slaves[$i].geneticQuirks.fertility+$slaves[$i].geneticQuirks.hyperFertility >= 4>>
-					<<set $slaves[$i].pregWeek = -2>>
-				<<elseif $slaves[$i].geneticQuirks.hyperFertility > 1>>
-					<<set $slaves[$i].pregWeek = -3>>
-				<<else>>
-					<<set $slaves[$i].pregWeek = -4>>
-				<</if>>
-				<<run SetBellySize($slaves[$i])>>
+				<<run TerminatePregnancy($slaves[$i])>>
 			<</if>>
 		<</if>>
 	<<elseif _oldCount > $slaves[$i].pregType && $slaves[$i].pregType == 0>>
-		<<set WombFlush($slaves[$i]), $slaves[$i].pregKnown = 0>>
-		<<if $slaves[$i].geneticQuirks.fertility+$slaves[$i].geneticQuirks.hyperFertility >= 4>>
-			<<set $slaves[$i].pregWeek = -2>>
-		<<elseif $slaves[$i].geneticQuirks.hyperFertility > 1>>
-			<<set $slaves[$i].pregWeek = -3>>
-		<<else>>
-			<<set $slaves[$i].pregWeek = -4>>
-		<</if>>
-		<<run SetBellySize($slaves[$i])>>
+		<<run TerminatePregnancy($slaves[$i])>>
 	<</if>>
 
 	<<if ($slaves[$i].preg >= $slaves[$i].pregData.normalBirth/4)>>
@@ -4572,7 +4556,6 @@
 	/* PREGNANCY TYPE SANITY CHECK (not for pregnancies started above) */
 	<<if $slaves[$i].preg <= 0>>
 		<<if $slaves[$i].pregType != 0>>
-			<<set $slaves[$i].pregType = 0>>
 			<<set WombFlush($slaves[$i])>>
 		<</if>>
 	<<elseif $slaves[$i].preg > 0 && $slaves[$i].pregType == 0>>
@@ -8443,13 +8426,7 @@
 		<<if $slaves[$i].preg > $slaves[$i].pregData.normalBirth/13.33 || $slaves[$i].pregKnown == 1>>
 			<<if $slaves[$i].pregSource != -1 && $slaves[$i].pregSource != -6>>
 				$slaves[$i].slaveName's weekly health checkup revealed $he is pregnant with an unacceptable child. @@.red;Its life has been terminated, you have been fined <<print cashFormat(100000)>>, and your rep among the Elite has been severely damaged.@@
-				<<set $slaves[$i].preg = 0>>
-				<<set $slaves[$i].pregType = 0>>
-				<<set $slaves[$i].pregSource = 0>>
-				<<set $slaves[$i].pregWeek = 0>>
-				<<set $slaves[$i].pregKnown = 0>>
-				<<set WombFlush($slaves[$i])>>
-				<<run SetBellySize($slaves[$i])>>
+				<<run TerminatePregnancy($slaves[$i])>>
 				<<run cashX(-100000, "fines", $slaves[$i])>>
 				<<set $failedElite += 150>>
 				<<if $slaves[$i].abortionTat > -1>>
@@ -8586,13 +8563,12 @@
 							<<set $slaves[$i].devotion -= 10, $slaves[$i].trust -= 10>>
 						<</if>>
 					<</if>>
-					<<set $slaves[$i].pregType = 0, WombFlush($slaves[$i]), $slaves[$i].pregKnown = 0, $slaves[$i].pregWeek = -4>>
+					<<set TerminatePregnancy($slaves[$i])>>
 					<<if $slaves[$i].abortionTat > -1>>
 						<<set $slaves[$i].abortionTat++>>
 						The temporary tattoo of a child has been replaced with $his <<= ordinalSuffix($slaves[$i].abortionTat)>> crossed out infant.
 						<<run cashX(forceNeg($modCost), "slaveMod", $slaves[$i])>>
 					<</if>>
-					<<run SetBellySize($slaves[$i])>>
 					<<set _miscarriage = 1>>
 				<</if>>
 			<</if>>
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index 8f14e32458547df94bf143270be6388116213c18..509caff1f588c067089bd11614ffb7c8b1b5b5d2 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -358,7 +358,7 @@
 		<<else>>Normal vagina.
 		<</if>>
 		<<link "No vagina">>
-			<<set $customSlave.vagina = -1, $customSlave.preg = 0, WombFlush($activeSlave), $customSlave.ovaries = 0>>
+			<<set $customSlave.vagina = -1, $customSlave.preg = 0, $customSlave.ovaries = 0>>
 			<<CustomSlaveVagina>>
 		<</link>>
 	<</replace>>