diff --git a/src/uncategorized/generateXXSlave.tw b/src/uncategorized/generateXXSlave.tw
index 74e4b096325128187b1af09c907aa88ab1607ef0..ead15bd06024512ff9481c4af5d75d800c0f07e3 100644
--- a/src/uncategorized/generateXXSlave.tw
+++ b/src/uncategorized/generateXXSlave.tw
@@ -108,18 +108,18 @@
 			<<set $activeSlave.race = "mixed race">>
 		<<else>>
 			<<set _capUpgradeCheck = setup[$captureUpgradeRace.toLowerCase().replace(/[ -]/g, '')+'Nationalities']>>
-			<<set _capUpgradeNationalities = []>>
+			<<set _capUpgradeNationalities = {}>>
 			<<set _keys = Object.keys(_capUpgradeCheck)>>
 			<<for _u = 0; _u < _keys.length; _u++>>
 				<<set _capNation = _keys[_u]>>
 				<<if _capNation in $nationalities>>
-					<<set _capUpgradeNationalities.push(_capNation)>>
+					<<set _capUpgradeNationalities[_capNation] = _capUpgradeCheck[_capNation]>>
 				<</if>>
 			<</for>>
-			<<if _capUpgradeNationalities.length > 0>>
-				<<set $activeSlave.nationality = _capUpgradeNationalities.random(), $activeSlave.race = $captureUpgradeRace>>
+			<<if Object.keys(_capUpgradeNationalities).length > 0>>
+				<<set $activeSlave.nationality = hashChoice(_capUpgradeNationalities), $activeSlave.race = $captureUpgradeRace>>
 			<<else>>
-				<<set $activeSlave.nationality = _keys.random(), $activeSlave.race = $captureUpgradeRace>>
+				<<set $activeSlave.nationality = hashChoice(_capUpgradeCheck), $activeSlave.race = $captureUpgradeRace>>
 			<</if>>
 		<</if>>
 		<<if $activeSlave.race != $captureUpgradeRace>>
diff --git a/src/uncategorized/generateXYSlave.tw b/src/uncategorized/generateXYSlave.tw
index 53c7849f43bc32207058e61f4637b30e307d0b81..ff4225284e7f706b44f3b6ee764a518e96716544 100644
--- a/src/uncategorized/generateXYSlave.tw
+++ b/src/uncategorized/generateXYSlave.tw
@@ -115,18 +115,18 @@
 			<<set $activeSlave.race = "mixed race">>
 		<<else>>
 			<<set _capUpgradeCheck = setup[$captureUpgradeRace.toLowerCase().replace(/[ -]/g, '')+'Nationalities']>>
-			<<set _capUpgradeNationalities = []>>
+			<<set _capUpgradeNationalities = {}>>
 			<<set _keys = Object.keys(_capUpgradeCheck)>>
 			<<for _u = 0; _u < _keys.length; _u++>>
 				<<set _capNation = _keys[_u]>>
 				<<if _capNation in $nationalities>>
-					<<set _capUpgradeNationalities.push(_capNation)>>
+					<<set _capUpgradeNationalities[_capNation] = _capUpgradeCheck[_capNation]>>
 				<</if>>
 			<</for>>
-			<<if _capUpgradeNationalities.length > 0>>
-				<<set $activeSlave.nationality = _capUpgradeNationalities.random(), $activeSlave.race = $captureUpgradeRace>>
+			<<if Object.keys(_capUpgradeNationalities).length > 0>>
+				<<set $activeSlave.nationality = hashChoice(_capUpgradeNationalities), $activeSlave.race = $captureUpgradeRace>>
 			<<else>>
-				<<set $activeSlave.nationality = _keys.random(), $activeSlave.race = $captureUpgradeRace>>
+				<<set $activeSlave.nationality = hashChoice(_capUpgradeCheck), $activeSlave.race = $captureUpgradeRace>>
 			<</if>>
 		<</if>>
 		<<if $activeSlave.race != $captureUpgradeRace>>