diff --git a/rules/base.xml.in b/rules/base.xml.in
index 3a7c3dc3..969906b8 100644
--- a/rules/base.xml.in
+++ b/rules/base.xml.in
@@ -4447,6 +4447,14 @@
+
+
+ bw
+ <_shortDescription>Bwa
+ <_description>Botswana
+ tsn
+
+
diff --git a/symbols/Makefile.am b/symbols/Makefile.am
index c9fcd4bb..fc618a4b 100644
--- a/symbols/Makefile.am
+++ b/symbols/Makefile.am
@@ -4,9 +4,9 @@ symbolsdir = $(xkb_base)/symbols
dist_symbols_DATA = \
ad af al \
am ara az \
-be bd \
-bg br ba \
-bt by brai \
+ba bd be \
+bg br brai \
+bt bw by \
ca cd \
ch cn cz \
de dk \
diff --git a/symbols/bw b/symbols/bw
new file mode 100644
index 00000000..ea5079e5
--- /dev/null
+++ b/symbols/bw
@@ -0,0 +1,19 @@
+partial default alphanumeric_keys
+xkb_symbols "tswana" {
+
+ include "us"
+
+ name[Group1]= "Botswana";
+
+ key { [ semicolon, colon, 0x01000324, 0x01000324 ] }; //COMBINING DIAERESIS BELOW
+ key { [apostrophe, quotedbl, 0x01000301, 0x01000308 ] }; //COMBINING ACUTE ACCENT, COMBINING DIAERESIS
+ key { [ grave, asciitilde, 0x01000300, 0x01000303 ] }; //COMBINING GRAVE ACCENT, COMBINING TILDE
+ key { [ 6, asciicircum, 0x01000302 ] }; //COMBINING CIRCUMFLEX ACCENT
+ key { [ 8, asterisk, 0x01000307, 0x01000323 ] }; //COMBINING DOT ABOVE, COMBINING DOT BELOW
+ key { [ 9, parenleft, 0x01000306 ] }; //COMBINING BREVE
+ key { [ 0, parenright, 0x0100030c ] }; //COMBINING CARON
+ key { [ minus, underscore, 0x01000304, 0x01000331 ] }; //COMBINING MACRON,COMBINING MACRON BELOW
+
+ include "level3(ralt_switch)"
+};
+