diff --git a/src/events/reRelativeRecruiter.js b/src/events/reRelativeRecruiter.js
index 961678e53e2f0e3e108acb253c067e2a96d47f96..bcd01a834ad839ed2c26803d0013ed9b66a9a7f4 100644
--- a/src/events/reRelativeRecruiter.js
+++ b/src/events/reRelativeRecruiter.js
@@ -9,7 +9,6 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 				s => s.fetish !== "mindbroken",
 				s => s.fuckdoll === 0,
 				s => s.devotion > 50,
-				canWalk, /* TODO: not sure why this requirement exists */
 				s => s.canRecruit === 1 && (totalRelatives(s) === 0 || V.limitFamilies !== 1),
 				s => this._chooseTargetRelative(s)
 			]
@@ -24,7 +23,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 		// make sure the slave has a genepool entry (everyone should)
 		const gp = V.genePool.find(s => s.ID === slave.ID);
 		if (!gp) {
-			console.log(`Slave with ID ${slave.ID} is missing her genepool entry.`);
+			console.log(`Slave with ID ${slave.ID} is missing their genepool entry.`);
 			slave.canRecruit = 0;
 			return false;
 		}
@@ -46,22 +45,22 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 
 		const pushWeight = (value, weight=1) => recruit.push(...Array(weight).fill(value));
 
-		if (slave.mother === 0 && slave.actualAge < 24 && V.seeDicks !== 100) {
+		if (slave.mother === 0 && slave.actualAge + V.fertilityAge < V.retirementAge - 2 && V.seeDicks !== 100) {
 			pushWeight("mother", 3);
 		}
-		if (slave.father === 0 && slave.actualAge < 24 && V.seeDicks !== 0) {
+		if (slave.father === 0 && slave.actualAge + V.potencyAge < V.retirementAge - 2 && V.seeDicks !== 0) {
 			pushWeight("father");
 		}
 
-		// TODO: age/fertility/virginity/potency should probably be checking genepool, not current state, since the child would have been born before the event slave was in your possession
-		if (slave.daughters < 3 && (slave.actualAge > V.minimumSlaveAge + V.fertilityAge) && isFertile(slave) && slave.trueVirgin !== 1) {
+		// TODO: age should probably be checking genepool, not current state, since the child would have been born before the event slave was in your possession
+		if (slave.daughters < 3 && (slave.actualAge > V.minimumSlaveAge + V.fertilityAge) && isFertile(gp) && slave.trueVirgin !== 1) {
 			if (V.seeDicks !== 100) {
 				pushWeight("daughter", 2);
 			}
 			if (V.seeDicks !== 0) {
 				pushWeight("son");
 			}
-		} else if (slave.daughters < 3 && (slave.actualAge > V.minimumSlaveAge + V.potencyAge) && slave.balls > 0) {
+		} else if (slave.daughters < 3 && (slave.actualAge > V.minimumSlaveAge + V.potencyAge) && gp.balls > 0) {
 			if (V.seeDicks !== 100) {
 				pushWeight("daughter", 2);
 			}
@@ -247,8 +246,10 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 				t.push(Spoken(eventSlave, `getting ${his2} butt stretched out`));
 			} else if (eventSlave.boobsImplant > 500) {
 				t.push(Spoken(eventSlave, `getting turned into a bimbo slut`));
+			} else if (V.PC.dick > 0 ) {
+				t.push(Spoken(eventSlave, `the feeling of your cock in ${him2}`));
 			} else {
-				t.push(Spoken(eventSlave, `the feeling of your cock in ${him2}`)); /* TODO: assumes PC has cock!? */
+				t.push(Spoken(eventSlave, `the taste of your pussy`));
 			}
 			t.push(Spoken(eventSlave, `as much as I do.`));
 
diff --git a/src/js/speech.js b/src/js/speech.js
index 1995b7a06ac023c9bc4d4b1d622e3b9a09660de6..efa409182f98380b23e8d4cec1367a262ac28857 100644
--- a/src/js/speech.js
+++ b/src/js/speech.js
@@ -176,13 +176,13 @@ globalThis.Enunciate = function(slave) {
 };
 
 /**
- * Returns speech with lisp if slave lisps
+ * Returns speech with lisp if slave lisps and can talk
  * @param {App.Entity.SlaveState} slave
  * @param {string} speech
  * @returns {string}
  */
 globalThis.Spoken = function(slave, speech) {
-	if (SlaveStatsChecker.checkForLisp(slave)) {
+	if (SlaveStatsChecker.checkForLisp(slave) && canTalk(slave)) {
 		return lispReplace(speech);
 	} else {
 		return speech;