diff --git a/src/interaction/prostheticConfig.tw b/src/interaction/prostheticConfig.tw
index 48c23339cded5e907628cea2690aaf26c23c177b..a14223ae11c1ed9d69f0fe6456fd351f6d6a8294 100644
--- a/src/interaction/prostheticConfig.tw
+++ b/src/interaction/prostheticConfig.tw
@@ -8,7 +8,7 @@
 	<<if $adjustProstheticsCompleted > 0>>
 		<<set $adjustProsthetics = $adjustProsthetics.filter(function(p) {
 			if (p.workLeft <= 0 && p.slaveID == $activeSlave.ID) {
-				$activeSlave.readyProsthetics.push({id: p.id});
+				addProsthetic($activeSlave, p.id);
 				$adjustProstheticsCompleted--;
 				return false;
 			}
diff --git a/src/js/itemAvailability.js b/src/js/itemAvailability.js
index 36923b4fe5a7c570b4acf37d16c9efc76058d301..3550d090ca440eff40134ded7145fdd674266d5a 100644
--- a/src/js/itemAvailability.js
+++ b/src/js/itemAvailability.js
@@ -173,3 +173,13 @@ window.isItemAccessible = function(string) {
 window.isProstheticAvailable = function(slave, prosthetic) {
 	return slave.readyProsthetics.findIndex(function(p) { return p.id === prosthetic; }) !== -1;
 };
+
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @param {string} prosthetic
+ */
+window.addProsthetic = function(slave, prosthetic) {
+	if (!isProstheticAvailable(slave, prosthetic)) {
+		slave.readyProsthetics.push({id: prosthetic});
+	}
+};
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 0b116f26af6d9b1b7167ce197d77a95ef84e4c46..98c46e1fd57f7dfcac5963f679d99b63a9150e50 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -3518,15 +3518,15 @@ Setting missing slave variables:
 	<<for _k = 0; _k < _Slave.readyLimbs.length; _k++>>
 		<<switch _Slave.readyLimbs[_k].type>>
 			<<case -1>>
-				<<set _Slave.readyProsthetics.push({id: "basicL"})>>
+				<<run addProsthetic(_Slave, "basicL")>>
 			<<case -2>>
-				<<set _Slave.readyProsthetics.push({id: "sexL"})>>
+				<<run addProsthetic(_Slave, "sexL")>>
 			<<case -3>>
-				<<set _Slave.readyProsthetics.push({id: "beautyL"})>>
+				<<run addProsthetic(_Slave, "beautyL")>>
 			<<case -4>>
-				<<set _Slave.readyProsthetics.push({id: "combatL"})>>
+				<<run addProsthetic(_Slave, "combatL")>>
 			<<case -5>>
-				<<set _Slave.readyProsthetics.push({id: "cyberneticL"})>>
+				<<run addProsthetic(_Slave, "cyberneticL")>>
 		<</switch>>
 	<</for>>
 <</if>>
diff --git a/src/uncategorized/labReport.tw b/src/uncategorized/labReport.tw
index a3ccf00a85c7258400aafaa57df4b92e577716f7..1521e662663a76535e4a860c01210b68a1dbe98c 100644
--- a/src/uncategorized/labReport.tw
+++ b/src/uncategorized/labReport.tw
@@ -25,7 +25,7 @@
 					<<= setup.prosthetics[_task.id].name>> construction project.
 					<<set $prosthetics[_task.id].amount += 1>>
 				<<case "craftFit">>
-					<<set _i = $slaves.findIndex(function(s) {return s.ID == _task.slaveID}), $slaves[_i].readyProsthetics.push({id: _task.id})>>
+					<<set_i = $slaves.findIndex(function(s) {return s.ID == _task.slaveID}), addProsthetic($slaves[_i], _task.id)>>
 					project to construct <<= addA(setup.prosthetics[_task.id].name)>> for <<= SlaveFullName($slaves[_i])>>.
 				<</switch>>
 				<<set $researchLab.tasks.shift(), _task = $researchLab.tasks[0]>>