diff --git a/src/events/intro/locationIntro.tw b/src/events/intro/locationIntro.tw
index 8180825dc39205d54bf8ba4e4e52e2577e1ec7c0..2a946c6c1dca50f76ed2361d226feb938dda80c6 100644
--- a/src/events/intro/locationIntro.tw
+++ b/src/events/intro/locationIntro.tw
@@ -4,11 +4,12 @@ As the old countries crumble and technology stagnates, the gap between rich and
 
 [[North America|Intro Summary][$continent = "North America", $language = "English"]]
 [[South America|Intro Summary][$continent = "South America", $language = "Spanish"]]
-[[Brazil|Intro Summary][$continent = "Brazil", $language = "Portuguese"]]
 [[Europe|Intro Summary][$continent = "Europe", $language = "German"]]
 [[the Middle East|Intro Summary][$continent = "the Middle East", $language = "Arabic"]]
 [[Africa|Intro Summary][$continent = "Africa", $language = "Arabic"]]
 [[Asia|Intro Summary][$continent = "Asia", $language = "Chinese"]]
 [[Australia|Intro Summary][$continent = "Australia", $language = "English"]]
+<br>
+[[Brazil|Intro Summary][$continent = "Brazil", $language = "Portuguese"]]
 [[Japan|Intro Summary][$continent = "Japan", $language = "Japanese", $PC.race = "asian", $PC.nationality = "Japanese", $PC.hColor = "black", $PC.eyeColor = "brown"]]
 //Slaves from countries in the selected continent will appear more frequently.//
diff --git a/src/js/generateNewSlaveJS.tw b/src/js/generateNewSlaveJS.tw
index 7e91cd150b63e5e092cd7e791c5c980bd48256f0..888423870526240ab3a2d131388c7e79c21a6d93 100644
--- a/src/js/generateNewSlaveJS.tw
+++ b/src/js/generateNewSlaveJS.tw
@@ -1163,45 +1163,9 @@ window.GenerateNewSlave = (function(){
 			}
 
 		} else {
-			switch (V.fixedRace) {
-				case "white":
-					slave.nationality = hashChoice(setup.whiteNationalities);
-					break;
-				case "asian":
-					slave.nationality = hashChoice(setup.asianNationalities);
-					break;
-				case "latina":
-					slave.nationality = hashChoice(setup.latinaNationalities);
-					break;
-				case "black":
-					slave.nationality = hashChoice(setup.blackNationalities);
-					break;
-				case "pacific islander":
-					slave.nationality = hashChoice(setup.pacificislanderNationalities);
-					break;
-				case "southern european":
-					slave.nationality = hashChoice(setup.southerneuropeanNationalities);
-					break;
-				case "amerindian":
-					slave.nationality = hashChoice(setup.amerindianNationalities);
-					break;
-				case "semitic":
-					slave.nationality = hashChoice(setup.semiticNationalities);
-					break;
-				case "middle eastern":
-					slave.nationality = hashChoice(setup.middleeasternNationalities);
-					break;
-				case "indo-aryan":
-					slave.nationality = hashChoice(setup.indoaryanNationalities);
-					break;
-				case "malay":
-					slave.nationality = hashChoice(setup.malayNationalities);
-					break;
-				default:
-					slave.nationality = hashChoice(V.nationalities);
-			}
 			slave.race = V.fixedRace;
 			V.fixedRace = 0;
+			raceToNationality(slave);
 		}
 	};
 
diff --git a/src/js/slaveGenerationJS.tw b/src/js/slaveGenerationJS.tw
index 94a529a73aa81aff069273a4144bd9b895250bcf..34bdb344d5a7a80f210128d23d3ff88cec6deb61 100644
--- a/src/js/slaveGenerationJS.tw
+++ b/src/js/slaveGenerationJS.tw
@@ -4,6 +4,17 @@ window.nationalityToRace = function nationalityToRace(slave) {
 	slave.race = hashChoice(setup.raceSelector[slave.nationality] || setup.raceSelector[""]);
 };
 
+window.raceToNationality = function raceToNationality(slave) {
+	/* Maximum of 100 attempts */
+	for (var i = 0; setup.raceSelector[s.nationality] && !(s.race in setup.raceSelector[s.nationality]) && i < 100; i++) {
+		s.nationality = hashChoice($nationalities);
+	}
+	/* No success after 100 attempts, so just randomize according to race */
+	if (setup.raceSelector[s.nationality] && !(s.race in setup.raceSelector[s.nationality]) && i == 100) {
+		s.nationality = Object.keys(setup[s.race.toLowerCase().replace(/[ -]/g, '')+'Nationalities']).random();
+	}
+};
+
 window.generateName = function generateName(nationality, race, male, filter) {
 	filter = filter || _.stubTrue; /* default: allow all */
 	const lookup = (male ? setup.malenamePoolSelector : setup.namePoolSelector);
diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw
index 24f97045e76dd02b7ae1a2f8f155469a6a3dab74..4f2fb223d0bd28dd9504d16549e7e660522e6a4f 100644
--- a/src/pregmod/widgets/pregmodWidgets.tw
+++ b/src/pregmod/widgets/pregmodWidgets.tw
@@ -1248,21 +1248,16 @@ extremely pale -5
 	const validRaces = ["amerindian", "asian", "black", "indo-aryan", "latina", "malay", "middle eastern", "mixed race", "pacific islander", "semitic", "southern european", "white"];
 	/* Nationalities, races, surnames random fill */
 	if(!s.nationality) {
-		s.nationality = hashChoice($nationalities);
 		/* Check for a pre-set race and if the nationality fits, else regenerate */
 		if(s.race && validRaces.includes(s.race)) {
-			/* Maximum of 100 attempts */
-			for (var i = 0; setup.raceSelector[s.nationality] && !(s.race in setup.raceSelector[s.nationality]) && i < 100; i++) {
+				raceToNationality(s);
+			} else {
 				s.nationality = hashChoice($nationalities);
 			}
-			/* No success after 100 attempts, so just randomize according to race */
-			if (setup.raceSelector[s.nationality] && !(s.race in setup.raceSelector[s.nationality]) && i == 100) {
-				s.nationality = Object.keys(setup[s.race.toLowerCase().replace(/[ -]/g, '')+'Nationalities']).random();
-			}
 		}
 	}
 	if(!s.race || !validRaces.includes(s.race)) {
-		s.race = hashChoice(setup.raceSelector[s.nationality] || setup.raceSelector[""]);
+		nationalityToRace(s);
 	}
 	if(!s.birthSurname && s.birthSurname !== "") {
 		s.birthSurname = (setup.surnamePoolSelector[s.nationality + "." + s.race]
diff --git a/src/uncategorized/completeCatalog.tw b/src/uncategorized/completeCatalog.tw
index afa794cbf15f8009db2849815bd85e0836c9cd34..591d41cb5d56243a60f6b87be740797cb122e1be 100644
--- a/src/uncategorized/completeCatalog.tw
+++ b/src/uncategorized/completeCatalog.tw
@@ -26,7 +26,7 @@
 		<<case "blind blue">>
 			<<set $activeSlave.origEye = "deep blue">>
 		<<case "milky white" "implant">>
-			<<set $activeSlave.origEye = random("blue", "green", "brown", "hazel", "light blue", "light green", "dark green", "dark blue")>>
+			<<set $activeSlave.origEye = random("blue", "brown", "dark blue", "dark green", "green", "hazel", "light blue", "light green")>>
 		<<default>>
 			<<set $activeSlave.origEye = $activeSlave.eyeColor>>
 	<</switch>>
diff --git a/src/uncategorized/hgSelect.tw b/src/uncategorized/hgSelect.tw
index 57cf77c108cbcc6fef29640691fdc7f53d64a08a..fdc7ba1c57ce84483f252ff7871c9a2244c987e3 100644
--- a/src/uncategorized/hgSelect.tw
+++ b/src/uncategorized/hgSelect.tw
@@ -42,7 +42,7 @@ _HGName will be
 <<if ($HGSeverity > 0)>>
 	''aggressive'' when punishing, with rape strongly encouraged. [[Moderate|HG Select][$HGSeverity = 0]]
 <<elseif ($HGSeverity == 0)>>
-	''moderate'' when punishing, carefully selecting appropriate consequences. [[Be aggressive|HG Select][$HGSeverity = 1]] | [["Restrict " + $him + ""|HG Select][$HGSeverity = -1]]
+	''moderate'' when punishing, carefully selecting appropriate consequences. [[Be aggressive|HG Select][$HGSeverity = 1]] | [["Restrict " + $him|HG Select][$HGSeverity = -1]]
 <<else>>
 	''respectful'' when punishing, treating slaves decently. [[Be stricter|HG Select][$HGSeverity = 0]]
 <</if>>
diff --git a/src/uncategorized/seCustomSlaveDelivery.tw b/src/uncategorized/seCustomSlaveDelivery.tw
index 718e34f4e69d896a2be440a620e6a92b56c4276c..958ad192cb56b00574b8027dd4b0d0b1cfaf981d 100644
--- a/src/uncategorized/seCustomSlaveDelivery.tw
+++ b/src/uncategorized/seCustomSlaveDelivery.tw
@@ -105,6 +105,7 @@
 <<set $ageAdjustOverride = 1>>
 <<set $one_time_age_overrides_pedo_mode = 1>>
 <<set $fixedNationality = $customSlave.nationality>>
+<<set $fixedRace = $customSlave.race>>
 <<if $customSlave.sex == 2>>
 	<<include "Generate XY Slave">>
 	<<set $activeSlave.dick = $customSlave.dick>>
@@ -201,32 +202,7 @@
 	<<set $activeSlave.nationality = hashChoice($nationalities)>>
 	<<run nationalityToRace($activeSlave)>>
 <<elseif $activeSlave.nationality == "Nationality is unimportant">>
-	<<switch $activeSlave.race>>
-	<<case "white">>
-		<<set $activeSlave.nationality = hashChoice(setup.whiteNationalities)>>
-	<<case "asian">>
-		<<set $activeSlave.nationality = hashChoice(setup.asianNationalities)>>
-	<<case "latina">>
-		<<set $activeSlave.nationality = hashChoice(setup.latinaNationalities)>>
-	<<case "black">>
-		<<set $activeSlave.nationality = hashChoice(setup.blackNationalities)>>
-	<<case "pacific islander">>
-		<<set $activeSlave.nationality = hashChoice(setup.pacificislanderNationalities)>>
-	<<case "southern european">>
-		<<set $activeSlave.nationality = hashChoice(setup.southerneuropeanNationalities)>>
-	<<case "amerindian">>
-		<<set $activeSlave.nationality = hashChoice(setup.amerindianNationalities)>>
-	<<case "semitic">>
-		<<set $activeSlave.nationality = hashChoice(setup.semiticNationalities)>>
-	<<case "middle eastern">>
-		<<set $activeSlave.nationality = hashChoice(setup.middleeasternNationalities)>>
-	<<case "indo-aryan">>
-		<<set $activeSlave.nationality = hashChoice(setup.indoaryanNationalities)>>
-	<<case "malay">>
-		<<set $activeSlave.nationality = hashChoice(setup.malayNationalities)>>
-	<<default>>
-		<<set $activeSlave.nationality = hashChoice($nationalities)>>
-	<</switch>>
+	<<run raceToNationality($activeSlave)>>
 <<elseif $activeSlave.race == "ethnicity is unimportant">>
 	<<run nationalityToRace($activeSlave)>>
 <<else>>