diff --git a/src/endWeek/reports/arcadeReport.js b/src/endWeek/reports/arcadeReport.js
index 1eb867f02859fb2ddacbbaffd7b5db2bc40bd02c..45c008b4d646ebc162ad1a764e6d7d4c79201462 100644
--- a/src/endWeek/reports/arcadeReport.js
+++ b/src/endWeek/reports/arcadeReport.js
@@ -245,58 +245,16 @@ App.EndWeek.arcadeReport = function() {
 	}
 
 	if (V.arcadeUpgradeFuckdolls === 2) {
-		let currentSlave, Age = -1, FD = -1, MB = -1, Con = -1;
-		const removeSlaves = [];
-		for (const slave of slaves) {
-			if (slave.sentence === 0) { /* let's not convert slaves we are punishing into Fuckdolls */
-				if (slave.fetish === "mindbroken") {
-					if (slave.fuckdoll === 0) {
-						if (slave.physicalAge > 35) {
-							Age = V.i;
-							break;
-						} else if (FD === -1) {
-							FD = V.i;
-						}
-					} else if (MB === -1) {
-						if (slave.vagina >= 4 || slave.anus >= 4) {
-							Con = V.i;
-						} else if (slave.physicalAge > 35) {
-							Age = V.i;
-						} else {
-							MB = V.i;
-						}
-					}
-				} else if (Con === -1) {
-					if (slave.vagina >= 4 || slave.anus >= 4) {
-						Con = V.i;
-					} else if (slave.physicalAge > 35) {
-						Age = V.i;
-					}
-				}
-			}
-		}
-		if (FD > -1) {
-			currentSlave = V.slaves[FD];
-		} else if (Con > -1) {
-			currentSlave = V.slaves[Con];
-		} else if (MB > -1) {
-			currentSlave = V.slaves[MB];
-		} else if (Age > -1) {
-			currentSlave = V.slaves[Age];
-		}
-		if (currentSlave) {
-			const {he} = getPronouns(currentSlave);
-			App.UI.DOM.appendNewElement("div", el, `${currentSlave.slaveName} is low-quality merchandise, so ${he} has been converted into a Fuckdoll.`, "indent");
-			removeSlaves.push(currentSlave.ID);
-			if (!currentSlave) { /* if not, then technically there was an error INVALID SLAVE */
-				V.fuckdolls++;
+		const fuckdolls = slaves.filter(s => fuckdollConversion(s));
+		if (fuckdolls.length > 0) {
+			for (const fuckdoll of fuckdolls) {
+				const {he} = getPronouns(fuckdoll);
+				App.UI.DOM.appendNewElement("div", el, `${fuckdoll.slaveName} is low-quality merchandise, so ${he} has been converted into a Fuckdoll.`, "indent");
+				removeSlave(getSlave(fuckdoll.ID));
 			}
 		} else {
 			App.UI.DOM.appendNewElement("div", el, `No slaves have failed quality inspection for Fuckdoll conversion. ${arcadeNameCaps} will remain overcrowded this week.`, "indent");
 		}
-		for (const ID of removeSlaves) {
-			removeSlave(getSlave(ID));
-		}
 	}
 
 	if (slavesLength > 0) {
@@ -323,4 +281,18 @@ App.EndWeek.arcadeReport = function() {
 		arcadeStats.append(App.Facilities.Arcade.Stats(true));
 	}
 	return el;
+
+	/**
+	 *
+	 * @param {App.Entity.SlaveState} slave
+	 */
+	function fuckdollConversion(slave) {
+		if (slave.sentence === 0 && slave.fuckdoll === 0 && slave.fetish === "mindbroken") {
+			if (slave.physicalAge > 35) {
+				return true;
+			} else if (slave.vagina >= 4 || slave.anus >= 4) {
+				return true;
+			}
+		}
+	}
 };