diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw
index ef3710756cc12c2ed3d78c03feb81f25886dcce2..335580af22cd15f28d3edfe99ddeb4192e5d327e 100644
--- a/src/events/intro/initNationalities.tw
+++ b/src/events/intro/initNationalities.tw
@@ -330,7 +330,7 @@
 
 <<if ndef $customVariety>> /* If non-custom variety, runs international trade restrictions script */
 <<if $internationalTrade != 0>>
-	<<set $nationalities = clone(setup.baseNationalities)>>
+	<<set $nationalities = arr2obj(setup.baseNationalities)>>
 	<<if $internationalVariety == 0>>
 		<<set hashPush($nationalities, "Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese")>>
 		<<set hashPush($nationalities, "Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian")>>
diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw
index 6b33c3b999d59cab7e4a83080fe799241d261d84..47b4117c87923f655227fcd67e68dc289cef2436 100644
--- a/src/js/utilJS.tw
+++ b/src/js/utilJS.tw
@@ -478,3 +478,11 @@ window.hashPush = function hashPush(obj, ...rest) {
 	});
 };
 
+window.weightedArray2HashMap = function weightedArray2HashMap(arr) {
+	const obj = {};
+	arr.forEach(item => {
+		if (obj[item] === undefined) obj[item] = 1;
+		else obj[item] += 1;
+	})
+	return obj;
+};
diff --git a/src/pregmod/basenationalitiesControls.tw b/src/pregmod/basenationalitiesControls.tw
index f2bf7463f4069852ff2e40fd4f98847d3daaa32c..5b261aafd4275373c3300adfde36b7547f7123a5 100644
--- a/src/pregmod/basenationalitiesControls.tw
+++ b/src/pregmod/basenationalitiesControls.tw
@@ -76,16 +76,19 @@ Filter by Region:
 		<div style="float: left;">
 		<<set _nation = setup.baseNationalities[_i]>>
 		<<print "
-		_nation 
+		_nation
 			@@.plusButton;<<link '+'>>
-				<<set hashPush($nationalities, '" + _nation + "')>>
+				<<set hashPush($nationalities, setup.baseNationalities["+_i+"])>>
 				<<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>>
 			<</link>>@@
 		">>
-	<<if def $nationalitiescheck[_nation] >>
+	<<if def $nationalitiescheck[_nation]>>
 		<<print "
 			@@.minusButton;<<link '–'>>
-				<<set $nationalities['" + _nation + "'] -= 1>>
+				<<set $nationalities[setup.baseNationalities["+_i+"]] -= 1>>
+				<<if $nationalities[setup.baseNationalities["+_i+"]] <= 0>>
+					<<set delete $nationalities[setup.baseNationalities["+_i+"]]>>
+				<</if>>
 				<<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>>
 			<</link>>@@
 		">>
@@ -93,7 +96,7 @@ Filter by Region:
 	<<if $nationalities[_nation] > 1 >>
 		<<print "
 			@@.zeroButton;<<link '0'>>
-				<<set delete $nationalities['" + _nation + "']>>
+				<<set delete $nationalities[setup.baseNationalities["+_i+"]]>>
 				<<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>>
 			<</link>>@@
 		">>
@@ -138,7 +141,10 @@ Filter by Region:
 	<<if def $nationalitiescheck[_nation]>>
 		<<print "
 			@@.minusButton;<<link '–'>>
-				<<set $nationalities[" + _nation + "] -= 1>>
+				<<set $nationalities[_controlsNationality["+_i+"]] -= 1>>
+				<<if $nationalities[_controlsNationality["+_i+"]] <= 0>>
+					<<set delete $nationalities["+_controlsNationality[_i]+"]>>
+				<</if>>
 				<<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>>
 			<</link>>@@
 		">>
@@ -146,7 +152,7 @@ Filter by Region:
 	<<if $nationalities[_nation] > 1 >>
 		<<print "
 			@@.zeroButton;<<link '0'>>
-				<<set delete $nationalities['" + _nation + "']>>
+				<<set delete $nationalities[_controlsNationality["+_i+"]]>>
 				<<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>>
 			<</link>>@@
 		">>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 9df70b9705c6e5cfab443b5ba259860e231e080f..f45851c7c2e89c1ba5f13debc405043c51245341 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -2,6 +2,10 @@
 
 <<set $nextButton = "Continue", $nextLink = "Main", $returnTo = "Main">>
 
+<<if Array.isArray($nationalities)>>
+	<<set $nationalities = weightedArray2HashMap($nationalities)>>
+<</if>>
+
 <<if def $youngCareers>>
 	<<unset $youngCareers, $educatedCareers, $uneducatedCareers, $gratefulCareers, $menialCareers, $entertainmentCareers, $whoreCareers, $HGCareers, $madamCareers, $DJCareers, $bodyguardCareers, $wardenessCareers, $nurseCareers, $attendantCareers, $milkmaidCareers, $stewardessCareers, $schoolteacherCareers>>