diff --git a/src/Corporation/manageCorporation.js b/src/Corporation/manageCorporation.js
index 427c1ec27745592311e624bb578331915c02b577..9735544ef960b6f0aa666c9531ff79dad555e7de 100644
--- a/src/Corporation/manageCorporation.js
+++ b/src/Corporation/manageCorporation.js
@@ -1,8 +1,7 @@
 App.Corporate.corpRaces = function() {
 	const el = new DocumentFragment();
 	App.UI.DOM.appendNewElement("div", el, `The corporation enslaves people of the following race${V.corp.SpecRaces.length === 1 ? ``:`s`}:`);
-	for (const race of App.Data.misc.filterRacesLowercase) {
-		const capRace = App.Data.misc.filterRaces[App.Data.misc.filterRacesLowercase.indexOf(race)];
+	for (const [race, capRace] of App.Data.misc.filterRaces) {
 		const r = [];
 		if (V.corp.SpecRaces.includes(race)) {
 			r.push(capRace);
diff --git a/src/events/intro/customizeSlaveTrade.js b/src/events/intro/customizeSlaveTrade.js
index e6a5083c791d3be72afd3d567cff2f66625a3a0f..36f486b5ae8fd05a74fdf30b29534a386c7623cc 100644
--- a/src/events/intro/customizeSlaveTrade.js
+++ b/src/events/intro/customizeSlaveTrade.js
@@ -50,20 +50,20 @@ App.Intro.CustomSlaveTrade = function() {
 		div = document.createElement("div");
 		App.UI.DOM.appendNewElement("span", div, `Filter by Race: `);
 		array = [];
-		for (const race of setup.filterRaces) {
-			if (baseControlsFilter === uncapFirstChar(race).replace(/[ -]/g, '')) {
+		for (const [race, raceCap] of setup.filterRaces) {
+			if (baseControlsFilter === race) {
 				array.push(
 					App.UI.DOM.disabledLink(
-						race,
+						raceCap,
 						["currently selected race"]
 					)
 				);
 			} else {
 				array.push(
 					App.UI.DOM.link(
-						race,
+						raceCap,
 						() => {
-							baseControlsFilter = uncapFirstChar(race).replace(/[ -]/g, '');
+							baseControlsFilter = race;
 							refresh();
 						}
 					)
@@ -166,10 +166,10 @@ App.Intro.CustomSlaveTrade = function() {
 			App.UI.DOM.appendNewElement("div", p, `By dominant race/ethnicity (hover over the name to see the nationalities affected):`);
 			list = document.createElement("UL");
 			list.classList.add("customize-slave-trade-ul");
-			for (const race of setup.filterRaces) {
+			for (const race of setup.filterRaces.keys()) {
 				const racialNationalities = setup.baseNationalities.filter(function(n) {
 					let races = setup.raceSelector[n] || setup.raceSelector[''];
-					return races[race.toLowerCase()] * 3.5 > hashSum(races);
+					return races[race] * 3.5 > hashSum(races);
 				});
 
 				if (racialNationalities.length > 0) {
diff --git a/src/events/intro/pcAppearance.js b/src/events/intro/pcAppearance.js
index 5d40d545c247f1347d408e71af4c3d91594d00f8..c09881efa53d11fed9735c8516751e24bd1e643e 100644
--- a/src/events/intro/pcAppearance.js
+++ b/src/events/intro/pcAppearance.js
@@ -6,11 +6,11 @@ App.UI.Player.appearance = function(options) {
 		.addComment("For best result capitalize it.").pulldown();
 
 	options.addOption("Your race is", "race", V.PC).showTextBox()
-		.addValueList(Array.from(setup.filterRaces, (k => [k, k.toLowerCase()])));
+		.addValueList(Array.from(App.Data.filterRaces, ((k, v) => [v, k])));
 
 	if (V.cheatMode) {
 		options.addOption("Your race is", "origRace", V.PC).showTextBox()
-			.addValueList(Array.from(setup.filterRaces, (k => [k, k.toLowerCase()])));
+			.addValueList(Array.from(App.Data.filterRaces, ((k, v) => [v, k])));
 	}
 
 	options.addOption("Your skin tone is", "skin", V.PC).showTextBox()
diff --git a/src/facilities/surgery/surgeryPassageExotic.js b/src/facilities/surgery/surgeryPassageExotic.js
index d21a052f57e21cbbc3b0b5e345adc57f15689872..4a4156e48be85a91bdf0a4b5fdfcefc6c12ecb91 100644
--- a/src/facilities/surgery/surgeryPassageExotic.js
+++ b/src/facilities/surgery/surgeryPassageExotic.js
@@ -34,13 +34,13 @@ App.UI.surgeryPassageExotic = function(slave, cheat = false) {
 			if (slave.indentureRestrictions > 1) {
 				App.UI.DOM.appendNewElement("div", el, `${His} indenture forbids elective surgery`, ["choices", "note"]);
 			} else {
-				for (const race of App.Data.misc.filterRacesLowercase) {
+				for (const [race, raceCap] of App.Data.misc.filterRacesLowercase) {
 					if (slave.race === race) {
 						continue;
 					}
 					linkArray.push(
 						makeLink(
-							App.Data.misc.filterRaces[App.Data.misc.filterRacesLowercase.indexOf(race)],
+							raceCap,
 							"race",
 							() => {
 								slave.race = race;
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 631b199c498155016c534b7431b0990f74a5991b..132c5a6bb4b4040dbeee66ee90103ea36583a3dc 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -2454,8 +2454,8 @@ App.RA.options = (function() {
 			if (V.pregnancyMonitoringUpgrade === 1 && V.geneticMappingUpgrade >= 1) {
 				pairs.push(["boys", "male"]);
 				pairs.push(["girls", "female"]);
-				for (let i = 0; i < App.Data.misc.filterRaces.length; ++i) {
-					pairs.push([App.Data.misc.filterRaces[i], "race:" + App.Data.misc.filterRacesLowercase[i]]);
+				for (const [race, raceCap] of setup.filterRaces) {
+					pairs.push([raceCap, "race:" + race]);
 				}
 			}
 			super("Pregnancy termination", pairs);
diff --git a/src/markets/specificMarkets/customSlaveMarket.js b/src/markets/specificMarkets/customSlaveMarket.js
index 5838770da2fdae91ad4f50d3a54eb3143e8c507f..d21524a14a975a7fe4df72dfe09d5c4e80708a09 100644
--- a/src/markets/specificMarkets/customSlaveMarket.js
+++ b/src/markets/specificMarkets/customSlaveMarket.js
@@ -301,8 +301,8 @@ App.Markets["Custom Slave"] = function() {
 		const choices = new Map([
 			["ethnicity is unimportant", "Ethnicity is unimportant"],
 		]);
-		for (const race of App.Data.misc.filterRaces) {
-			choices.set(race.toLowerCase(), race);
+		for (const [race, raceCap] of App.Data.misc.filterRaces) {
+			choices.set(race, raceCap);
 		}
 
 		createDescription(el, description, slaveProperty);
diff --git a/src/markets/specificMarkets/huskSlave.js b/src/markets/specificMarkets/huskSlave.js
index ff4e664200fd8f5b5183a1b0f80d370b0e48c192..ee9a9d18b79f40f1efdd768f237c06c29d050b6c 100644
--- a/src/markets/specificMarkets/huskSlave.js
+++ b/src/markets/specificMarkets/huskSlave.js
@@ -98,22 +98,22 @@ App.Markets["Husk Slave"] = function() {
 		);
 
 		const linkArray = [];
-		const raceUpper = App.Data.misc.filterRaces.concat(["Not Important"]);
-		const raceLower = App.Data.misc.filterRacesLowercase.concat(["not important"]);
-		for (let i = 0; i < raceUpper.length; i++) {
-			if (V.huskSlave.race === raceLower[i]) {
+		const race = new Map(App.Data.misc.filterRaces);
+		race.set("Not Important", "not important");
+		for (const [race, raceCap] of setup.filterRaces) {
+			if (V.huskSlave.race === race) {
 				linkArray.push(
 					App.UI.DOM.disabledLink(
-						raceUpper[i],
+						raceCap,
 						["current selection"]
 					)
 				);
 			} else {
 				linkArray.push(
 					App.UI.DOM.link(
-						raceUpper[i],
+						raceCap,
 						() => {
-							V.huskSlave.race = raceLower[i];
+							V.huskSlave.race = race;
 							refresh();
 						}
 					)