diff --git a/src/facilities/surgery/surgeryPassageExotic.js b/src/facilities/surgery/surgeryPassageExotic.js
index d21647e27be6a553d77cb5c5efd0de6026836aee..354390ea5d6d0c1b61dd7c7d60a9943b9e899745 100644
--- a/src/facilities/surgery/surgeryPassageExotic.js
+++ b/src/facilities/surgery/surgeryPassageExotic.js
@@ -50,13 +50,12 @@ App.UI.surgeryPassageExotic = function(slave, refreshParent, cheat = false) {
 
 		function geneTherapy() {
 			const el = new DocumentFragment();
-			const r = [];
-			const linkArray = [];
 			if (slave.indentureRestrictions >= 1) {
 				App.UI.DOM.appendNewElement("div", el, `${His} indenture forbids elective surgery`, ["choices", "note"]);
 			} else if (slave.health.health < 0) {
 				App.UI.DOM.appendNewElement("div", el, `${He}'s too unhealthy to undergo gene therapy`, ["choices", "note"]);
 			} else {
+				const linkArray = [];
 				if (V.arcologies[0].childhoodFertilityInducedNCSResearch === 1) {
 					if (slave.geneMods.NCS === 0) {
 						linkArray.push(App.Medicine.Surgery.makeLink(
@@ -86,16 +85,16 @@ App.UI.surgeryPassageExotic = function(slave, refreshParent, cheat = false) {
 						App.UI.DOM.appendNewElement("div", el, `${He} already is already immortal`, ["choices", "note"]);
 					}
 				}
+				App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray), "choices");
 			}
-			App.Events.addNode(el, r, "div");
-			App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray), "choices");
 			el.append(retroVirus());
 			return el;
 
 			function retroVirus() {
 				const el = new DocumentFragment();
 				const slaveGeneList = App.UI.DOM.appendNewElement("ul", el);
-				const select = App.UI.DOM.appendNewElement("select", el);
+				const select = App.UI.DOM.makeElement("select", null, "choices");
+				const canEditGenes = slave.indentureRestrictions === 0 && slave.health.health >= 0;
 				select.classList.add("rajs-list");
 				const description = App.UI.DOM.appendNewElement("div", el, null);
 				for (const gene in slave.geneticQuirks) {
@@ -120,28 +119,32 @@ App.UI.surgeryPassageExotic = function(slave, refreshParent, cheat = false) {
 					) {
 						continue;
 					}
-					const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(geneData.title));
-					choice.value = gene;
-					select.append(choice);
+					if (canEditGenes) {
+						const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(geneData.title));
+						choice.value = gene;
+						select.append(choice);
+					}
+				}
+				if (canEditGenes) {
+					select.selectedIndex = -1;
+					select.onchange = () => {
+						// selectedGene = select.options[select.selectedIndex];
+						jQuery(description).empty().append(describeGene(select.value));
+					};
+					el.append(select);
 				}
-				select.selectedIndex = -1;
-				select.onchange = () => {
-					// selectedGene = select.options[select.selectedIndex];
-					jQuery(description).empty().append(describeGene(select.value));
-				};
 
 				return el;
 
 				function describeGene(selectedGene) {
 					const el = new DocumentFragment();
-					const r = [];
 					const linkArray = [];
 					const geneData = App.Data.geneticQuirks.get(selectedGene);
-					r.push(`Selected gene is`);
-					r.push(App.UI.DOM.makeElement("span", `${geneData.title}:`, "orange"));
-					r.push(`${geneData.description}.`);
-					App.Events.addNode(el, r, "div");
-
+					App.Events.addNode(el, [
+						`Selected gene is`,
+						App.UI.DOM.makeElement("span", `${geneData.title}:`, "orange"),
+						`${geneData.description}.`
+					], "div");
 					if (["pFace", "uFace"].includes(selectedGene)) {
 						linkArray.push(App.Medicine.Surgery.makeLink(
 							new App.Medicine.Surgery.Procedures.RemoveGene(slave, selectedGene, `Prevent passing of ${geneData.title}s`),