diff --git a/src/005-passages/interactPassages.js b/src/005-passages/interactPassages.js
index ed27f32e8c1ebbd27a518a0d492b1db259a6571c..7fec5e17c7d0250a3055182fb97e3d3bc5cd48bb 100644
--- a/src/005-passages/interactPassages.js
+++ b/src/005-passages/interactPassages.js
@@ -419,4 +419,12 @@ new App.DomPassage("Inspect PC Fetus Tank Settings",
 		V.nextLink = "Analyze PC Pregnancy";
 		return App.UI.inspectTankSettings(true, true);
 	}, ["jump-from-safe"]
+);
+
+new App.DomPassage("Transfer All Player Ova Select",
+() => {
+	V.nextButton = "Cancel";
+	V.nextLink = passage()
+	return App.UI.transferAllPlayerOvaSelect();
+}
 );
\ No newline at end of file
diff --git a/src/player/managePersonalAffairs.js b/src/player/managePersonalAffairs.js
index 2fc4c3db5f40073b3f655255914380ea0bceee30..b64cca379c48d5182a86faa051ae86299d32ccad 100644
--- a/src/player/managePersonalAffairs.js
+++ b/src/player/managePersonalAffairs.js
@@ -361,7 +361,7 @@ App.UI.managePersonalAffairs = function() {
 				text.push(`You have a bun baking in the oven.`);
 
 				if (arcology.FSRestart === "unset" || V.eugenicsFullControl === 1 || (V.PC.pregSource !== -1 && V.PC.pregSource !== -6)) {
-					text.push(App.UI.DOM.link(`Pop some morning after pills`, () => {
+					text.push(App.UI.DOM.link(`Pop some morning after pills.`, () => {
 						WombFlush(V.PC);
 
 						App.UI.DOM.replace(appearanceDiv, appearance);
@@ -369,6 +369,12 @@ App.UI.managePersonalAffairs = function() {
 						App.UI.DOM.replace(pregnancyDiv, pregnancy);
 					}));
 				}
+				if (V.pregnancyMonitoringUpgrade > 0) {
+					text.push(`But if you want to keep your progeny without having to give birth, you can`);
+					text.push(App.UI.DOM.passageLink(`transfer ${V.PC.womb.length > 1 ? "all your ova" : "your ovum"} to a slave.`, "Transfer All Player Ova Select", () => {
+					}));
+	
+				}
 			} else if (PC.preg > 0) {
 				text.push(`Your fertile ${PC.mpreg === 1 ? "ass" : ""}pussy has been thoroughly seeded; there is a chance you are pregnant.`);
 
diff --git a/src/pregmod/surrogacy.js b/src/pregmod/surrogacy.js
index 1eadac307093958748fb2645737b7ebf83fa4211..2b3d0b2c4bcf700fcff34ff64829efb4b609c9a1 100644
--- a/src/pregmod/surrogacy.js
+++ b/src/pregmod/surrogacy.js
@@ -245,3 +245,105 @@ App.UI.surrogacy = function() {
 	App.Events.addParagraph(node, r);
 	return node;
 };
+
+/** Transfers all PC ova to a selected slave
+ */
+App.UI.transferAllPlayerOva = function() {
+    let fetus;
+	let receptrix = getSlave(V.receptrix.ID);
+    const ovaTotal = V.PC.womb.length;
+	let r = [];
+
+    for (let ovusNum = 0; ovusNum < ovaTotal; ovusNum++) {
+        fetus = WombRemoveFetus(V.PC, ovusNum);
+        WombAddFetus(receptrix, fetus);
+    }
+
+    WombNormalizePreg(receptrix);
+    WombNormalizePreg(V.PC);
+    cashX(forceNeg(V.surgeryCost * 2 * ovaTotal), "PCmedical");
+	const {
+		He,
+		he, his, him
+	} = getPronouns(receptrix);
+	if (receptrix.fetish === Fetish.MINDBROKEN) {
+		r.push(`${receptrix.slaveName} leaves the surgery with a certain warmth in ${his} lower abdomen, ${he} knows that ${he} has been impregnated.`);
+	} else if ((receptrix.fetish === "pregnancy") && (receptrix.fetishStrength > 60) && (receptrix.fetishKnown === 1)) {
+		if (canSee(receptrix)) {
+			r.push(`Since the surgery required only a local anesthetic, ${receptrix.slaveName} remained fully aware throughout the procedure. ${He} was overjoyed at the sight of the syringe containing your child${ovaTotal > 1 ? "ren" : ""} emptying into ${his} womb.`);
+		} else {
+			r.push(`${receptrix.slaveName} leaves the surgery with a certain warmth in ${his} lower abdomen, ${he} knows that ${he} has been impregnated.`);
+		}
+		r.push(`${He} is <span class="devotion inc"> filled with joy</span> over the life resettling into ${his} womb and can't wait to see the result. ${He}'s so pleased that ${he} now <span class="trust inc">trusts</span> your plans for ${his} body.`);
+		receptrix.trust += 4;
+		receptrix.devotion += 10;
+	} else if (receptrix.devotion > 50) {
+		if (canSee(receptrix)) {
+			r.push(`Since the surgery required only a local anesthetic, ${receptrix.slaveName} remained fully aware throughout the procedure. ${He} watched the syringe containing ${his} new pregnancy empty into ${his} womb with rapt attention.`);
+		} else {
+			r.push(`${receptrix.slaveName} leaves the surgery with a certain warmth in ${his} lower abdomen, ${he} knows that ${he} has been impregnated.`);
+		}
+		r.push(`${He}'s <span class="devotion inc">grateful</span> that you think ${him} worthy of carrying this child in your stead, and a little nervous about how ${he}'ll perform as a surrogate.`);
+		receptrix.devotion += 4;
+	} else if (receptrix.devotion >= -20) {
+		if (canSee(receptrix)) {
+			r.push(`Since the surgery required only a local anesthetic, ${receptrix.slaveName} remained fully aware throughout the procedure. From the syringe making contact with ${his} skin, to the ${ovaTotal > 1 ? "eggs'" : "egg's"} delivery into ${his} womb and ${his} subsequent impregnation, ${he} couldn't look away.`);
+		} else {
+			r.push(`${receptrix.slaveName} leaves the surgery with a certain warmth in ${his} lower abdomen, ${he} knows that ${he} has been impregnated.`);
+		}
+		r.push(`${He} understands the realities of ${his} life as a slave, so it isn't much of a shock. ${He} is <span class="trust dec">sensibly fearful</span> of your total power over ${his} body and how you are forcing your pregnancy upon ${him}.`);
+		receptrix.trust -= 10;
+	} else {
+		if (canSee(receptrix)) {
+			r.push(`Since the surgery required only a local anesthetic, ${receptrix.slaveName} remained fully aware throughout the procedure. The moment ${he} realized what was happening, ${he} shut ${his} eyes tight, only opening them again as ${he} feels the slight tingle of the injector exiting ${his} lower abdomen.`);
+		} else {
+			r.push(`${receptrix.slaveName} leaves the surgery with a certain warmth in ${his} lower abdomen, ${he} knows that ${he} has been impregnated.`);
+		}
+		r.push(`${He} does not understand the realities of ${his} life as a slave at a core level, so ${he}'s <span class="devotion dec">terrified and angry</span> that you have forced ${him} to carry your child instead of doing so yourself.`);
+		r.push(`${He} is <span class="trust dec">sensibly fearful</span> of your total power over ${his} body and who else's troubles may be levied upon ${him}.`);
+		receptrix.trust -= 15;
+		receptrix.devotion -= 15;
+	}
+
+	V.receptrix = 0;
+
+	App.Events.addParagraph(node, r);
+	return node;
+}
+
+/** Selecting a suitable slave for transferring all the player's womb content
+ */
+App.UI.transferAllPlayerOvaSelect = function() {
+	const node = new DocumentFragment();
+	V.receptrix = 0;
+	let eligibility = 0;
+    const ovaTotal = V.PC.womb.length;
+
+	App.UI.DOM.appendNewElement("p", node, `You've decided your fertilized ${ovaTotal > 1 ? "ova are'" : "ovum is"} to be transplanted; now you must select whose womb will be ${ovaTotal > 1 ? "their'" : "its"} new home.`, "scene-intro");
+
+	App.UI.DOM.appendNewElement("h2", node, "Select a slave to serve as the host");
+
+	for (const slave of V.slaves) {
+		if ((slave.ovaries > 0 || slave.mpreg > 0) &&
+			isSlaveAvailable(slave) && slave.preg >= 0 && slave.preg < slave.pregData.normalBirth / 10 &&
+			slave.pregWeek >= 0 && slave.pubertyXX === 1 && slave.pregType + V.PC.womb.length <= 12 && 
+			slave.bellyImplant === -1 && slave.broodmother === 0 && slave.inflation <= 2 && slave.physicalAge < 70
+		) {
+			const div = App.UI.DOM.appendNewElement("div", node, App.UI.DOM.referenceSlaveWithPreview(slave, SlaveFullName(slave)));
+			div.append(" ", App.UI.DOM.passageLink(
+				"Select", "transferAllPlayerOva",
+				() => {
+					V.receptrix = slave;
+				}
+			));
+			if (slave.pregType >= 4) {
+				App.UI.DOM.appendNewElement("span", div, `Using a slave carrying multiples is inadvisable`, ["note"]);
+			}
+			eligibility = 1;
+		}
+	}
+	if (eligibility === 0) {
+		App.UI.DOM.appendNewElement("div", node, "You have no slaves capable of acting as a surrogate.");
+	}
+	return node;
+};
\ No newline at end of file