diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index e4917376bdf76940265571f24b00d5ab55768c72..e832c720759527bcd42eaefbd5b5b8d8848277f5 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -224,6 +224,10 @@ window.inferiorRaceP = /** @param {App.Entity.SlaveState} slave */ function infe
 	return State.variables.arcologies[0].FSSubjugationistRace === slave.race;
 };
 
+window.hasVisibleHeterochromia = /** @param {App.Entity.SlaveState} slave */ function hasVisibleHeterochromia(slave) {
+	return slave.geneticQuirks.heterochromia !== 0 && slave.geneticQuirks.heterochromia !== 1 && slave.geneticQuirks.albinism !== 2 && slave.geneticQuirks.heterochromia !== slave.eyeColor && slave.eyeColor === slave.origEye;
+}
+
 window.isLeaderP = /** @param {App.Entity.SlaveState} slave */ function isLeaderP(slave) {
 	const V = State.variables;
 	/** @type {App.Entity.SlaveState[]}*/
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 7fadd54063599e04bbce99d8bf58d826f08d17a3..a47106aec722d574d2dc079365c8b44a8aa55f08 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -5229,7 +5229,7 @@ $He's got a
 <<widget "eyeDescription">>
 
 <<if $activeSlave.eyes == -2>>
-	<<if $activeSlave.geneticQuirks.heterochromia != 0 && $activeSlave.geneticQuirks.heterochromia != 1 && $activeSlave.geneticQuirks.heterochromia != $activeSlave.origEye>><<set _heterochromia = 1>><<else>><<set _heterochromia = 0>><</if>>
+	<<if hasVisibleHeterochromia($activeSlave)>><<set _heterochromia = 1>><<else>><<set _heterochromia = 0>><</if>>
 	<<if $activeSlave.eyeColor != "empty">>
 		$His eyes are dull<<if $saleDescription == 1 && ($PC.medicine >= 50 || $PC.slaving >= 50)>>, unfocused<<if _heterochromia == 1>>, heterochromatic,<</if>> and clearly nonfunctional<<else>><<if _heterochromia == 1>>, heterochromatic,<</if>> and unfocused<</if>>,
 	<<else>>
@@ -5362,7 +5362,8 @@ $He's got a
 <</widget>>
 
 /* to simplify heterochromia */
-<<widget "eyeColor">><<if def $args[0]>><<if $args[0].geneticQuirks.heterochromia != 0 && $args[0].geneticQuirks.heterochromia != 1 && $args[0].geneticQuirks.heterochromia != $args[0].origEye>>heterochromatic $args[0].eyeColor and $args[0].geneticQuirks.heterochromia<<else>>$args[0].eyeColor<</if>><<else>><<if $activeSlave.geneticQuirks.heterochromia != 0 && $activeSlave.geneticQuirks.heterochromia != 1 && $activeSlave.geneticQuirks.heterochromia != $activeSlave.origEye>>heterochromatic $activeSlave.eyeColor and $activeSlave.geneticQuirks.heterochromia<<else>>$activeSlave.eyeColor<</if>><</if>><</widget>>
+<<widget "eyeColor">><<if def $args[0]>><<if hasVisibleHeterochromia($args[0])>>heterochromatic $args[0].eyeColor and $args[0].geneticQuirks.heterochromia<<else>>$args[0].eyeColor<</if>><<else>><<if hasVisibleHeterochromia($activeSlave)>>heterochromatic $activeSlave.eyeColor and $activeSlave.geneticQuirks.heterochromia<<else>>$activeSlave.eyeColor<</if>>
+<</if>><</widget>>
 
 <<widget "earDescription">>
 /* ear shape description here */