diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js
index 4564df3e1027f97c63cd859987bea7823421d2c2..3394f4df8f054861712b1ba225ee962b8e37e740 100644
--- a/src/data/backwardsCompatibility/datatypeCleanup.js
+++ b/src/data/backwardsCompatibility/datatypeCleanup.js
@@ -1049,6 +1049,7 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.choosesOwnChastity = Math.clamp(+slave.choosesOwnChastity, 0, 1) || 0;
 		slave.breedingMark = Math.clamp(+slave.breedingMark, 0, 1) || 0;
 		slave.rudeTitle = Math.clamp(+slave.rudeTitle, 0, 1) || 0;
+		slave.mobilityAid = Math.clamp(+slave.mobilityAid, 0, 1) || 0;
 	}
 
 	/**
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 0313f4892c1647257af7136a5957860d5b24dfe2..43a8a59e4d459a752bf1fa5eb0d1d2bef5d84fad 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -1917,6 +1917,12 @@ App.Entity.SlaveState = class SlaveState {
 		 * * "cow tail"
 		 */
 		this.buttplugAttachment = "none";
+		/**
+		 * Is the slave allowed to use mobility aids
+		 * * 0: no
+		 * * 1: yes
+		 */
+		this.mobilityAid = 0;
 		/**
 		 * slave intelligence
 		 * * -100 - -96: borderline retarded
diff --git a/src/npc/interaction/passage/fSlaveImpreg.tw b/src/npc/interaction/passage/fSlaveImpreg.tw
index 2e5015ba3a3ad1eaa041c0ec9d333f8e9b7fb068..ea74e085502754f4fbd5ca0f322f0070f8d88957 100644
--- a/src/npc/interaction/passage/fSlaveImpreg.tw
+++ b/src/npc/interaction/passage/fSlaveImpreg.tw
@@ -9,7 +9,7 @@
 
 <h3>Select an eligible slave to serve as the semen donatrix</h3>
 
-<<set _eligibles = $slaves.filter((s) => (s.ID != getSlave($AS).ID) && canImpreg(getSlave($AS), s))>>
+<<set _eligibles = $slaves.filter((s) => (s.ID != getSlave($AS).ID) && canImpreg(getSlave($AS), s) && canPenetrate(getSlave($AS), s))>>
 <<for _i = 0; _i < _eligibles.length; _i++>>
 	<<set _name = SlaveFullName(_eligibles[_i])>>
 	<div>