diff --git a/src/events/reArcologyInspection.js b/src/events/reArcologyInspection.js
index b4c4a2f56bd270e5d7acfeb55d60d75e561212df..1209b58b99b07a33fd2960b6c7cc2056aae92ba6 100644
--- a/src/events/reArcologyInspection.js
+++ b/src/events/reArcologyInspection.js
@@ -443,8 +443,15 @@ App.Events.REArcologyInspection = class REArcologyInspection extends App.Events.
 		}
 
 		function virginityWarning() {
-			if (agent && (agent.vagina === 0 || agent.anus === 0)) {
-				return `This option may take a virginity`;
+			const virgins = [];
+			if (agent && (agent.vagina === 0 || agent.anus == 0)) {
+				virgins.push(agent.slaveName);
+			}
+			if (agentLover && (agentLover.vagina === 0 || agentLover.anus == 0)) {
+				virgins.push(agentLover.slaveName);
+			}
+			if (virgins.length > 0) {
+				return `This option may take ${toSentence(virgins)}'s virginity.`
 			}
 			return null;
 		}
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.`));