diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js
index 9a167e05c8ed8f2cde2d75b6bad1c20ce6332bc6..f0d982966693ecc8b71318f918cab536d3d90815 100644
--- a/src/npc/generate/generateMarketSlave.js
+++ b/src/npc/generate/generateMarketSlave.js
@@ -475,10 +475,15 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 			opinion = Math.trunc(opinion/20);
 			opinion = Math.clamp(opinion, -10, 10);
 
+			let genes = "";
 			if (V.arcologies[market].FSSubjugationist > 20) {
 				SGProp.race = V.arcologies[market].FSSubjugationistRace;
 			}
-			slave = GenerateNewSlave("", SGProp);
+			if (V.arcologies[market].FSRepopulationFocus > 20) {
+				genes = "XX"; // "exclusively female" - does not respect $seeDicks
+				SGProp.minAge = V.fertilityAge;
+			}
+			slave = GenerateNewSlave(genes, SGProp);
 			generatePronouns(slave);
 			pronounsGenerated = true;
 			pronoun = getPronouns(slave);
@@ -559,37 +564,24 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 			}
 			if (V.arcologies[market].FSRepopulationFocus > 50) {
 				r += `They are exclusively female and all extremely pregnant. `;
-				slave.genes = "XX";
-				slave.ovaries = 1;
-				slave.vagina = either(0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3);
-				slave.dick = 0;
-				slave.balls = 0;
-				slave.scrotum = 0;
-				if (slave.physicalAge < V.fertilityAge) {
-					if (V.precociousPuberty === 0) {
-						slave.physicalAge = V.fertilityAge;
-						slave.visualAge = V.fertilityAge;
-						slave.actualAge = V.fertilityAge;
-						slave.ovaryAge = V.fertilityAge;
-					}
-				}
-				slave.pubertyXX = 1;
 				if (slave.ovaryAge >= 42) {
 					/* corrects menopausal mothers */
 					slave.ovaryAge = 40;
 				}
-				slave.preg = 0; /* removing contraception of default slave generation so isFertile can work right*/
-				if (isFertile(slave)) {
-					slave.vagina = jsRandom(1, 4);
-					slave.preg = jsRandom(21, 39);
-					if (jsRandom(1, 2) === 1 && V.seeHyperPreg === 1) {
-						slave.pregType = jsRandom(3, 29);
-						slave.pregAdaptation = 250;
-					} else {
-						slave.pregType = jsRandom(3, 8);
-						slave.pregAdaptation = 100;
+				if (slave.preg < 0) {
+					slave.preg = 0; /* removing contraception of default slave generation so isFertile can work right*/
+					if (isFertile(slave)) {
+						slave.vagina = jsRandom(1, 4);
+						slave.preg = jsRandom(21, 39);
+						if (jsRandom(1, 2) === 1 && V.seeHyperPreg === 1) {
+							slave.pregType = jsRandom(3, 29);
+							slave.pregAdaptation = 250;
+						} else {
+							slave.pregType = jsRandom(3, 8);
+							slave.pregAdaptation = 100;
+						}
+						SetBellySize(slave);
 					}
-					SetBellySize(slave);
 				}
 				slave.lactation = jsRandom(0, 1);
 				if (slave.lactation > 0) {
@@ -679,14 +671,16 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 				}
 			} else if (V.arcologies[market].FSGenderFundamentalist > 50) {
 				r += `Fertile slaves from there almost never appear without swollen bellies and sensitive nipples. `;
-				slave.preg = 0; /* removing contraception of default slave generation so isFertile can work right*/
-				if (isFertile(slave)) {
-					slave.preg = jsRandom(1, 40);
-					slave.pregType = setPregType(slave);
-					SetBellySize(slave);
-					slave.lactation = jsRandom(0, 1);
-					if (slave.lactation > 0) {
-						slave.lactationDuration = 2;
+				if (slave.preg < 0) {
+					slave.preg = 0; /* removing contraception of default slave generation so isFertile can work right*/
+					if (isFertile(slave)) {
+						slave.preg = jsRandom(1, 40);
+						slave.pregType = setPregType(slave);
+						SetBellySize(slave);
+						slave.lactation = jsRandom(0, 1);
+						if (slave.lactation > 0) {
+							slave.lactationDuration = 2;
+						}
 					}
 				}
 			}