diff --git a/rules/base.xml.in b/rules/base.xml.in
index 4cd0a3b..736fa80 100644
--- a/rules/base.xml.in
+++ b/rules/base.xml.in
@@ -5917,6 +5917,57 @@
         </variant>
       </variantList>
     </layout>
+    <layout>
+      <configItem>
+        <name>id</name>
+        <shortDescription>id</shortDescription>
+        <description>Indonesian (Jawi)</description>
+        <languageList>
+          <iso639Id>id</iso639Id>
+          <iso639Id>ms</iso639Id>
+          <iso639Id>min</iso639Id>
+          <iso639Id>ace</iso639Id>
+          <iso639Id>bjn</iso639Id>
+          <iso639Id>tsg</iso639Id>
+          <iso639Id>mfa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList></variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>my</name>
+        <shortDescription>ms</shortDescription>
+        <description>Malay (Jawi)</description>
+        <languageList>
+          <iso639Id>id</iso639Id>
+          <iso639Id>ms</iso639Id>
+          <iso639Id>min</iso639Id>
+          <iso639Id>ace</iso639Id>
+          <iso639Id>bjn</iso639Id>
+          <iso639Id>tsg</iso639Id>
+          <iso639Id>mfa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList></variantList>
+    </layout>
+    <layout>
+      <configItem>
+        <name>bn</name>
+        <shortDescription>ms</shortDescription>
+        <description>Malay (Jawi)</description>
+        <languageList>
+          <iso639Id>id</iso639Id>
+          <iso639Id>ms</iso639Id>
+          <iso639Id>min</iso639Id>
+          <iso639Id>ace</iso639Id>
+          <iso639Id>bjn</iso639Id>
+          <iso639Id>tsg</iso639Id>
+          <iso639Id>mfa</iso639Id>
+        </languageList>
+      </configItem>
+      <variantList></variantList>
+    </layout>
   </layoutList>
   <optionList>
     <group allowMultipleSelection="true">
diff --git a/symbols/bn b/symbols/bn
new file mode 100644
index 0000000..22cebef
--- /dev/null
+++ b/symbols/bn
@@ -0,0 +1,7 @@
+default partial alphanumeric_keys
+xkb_symbols "jawi" {
+    include "id(jawi)"
+
+    name[Group1]= "Malay (Jawi)";
+};
+
diff --git a/symbols/id b/symbols/id
new file mode 100644
index 0000000..dca2596
--- /dev/null
+++ b/symbols/id
@@ -0,0 +1,63 @@
+// Modified from Arabic (buckwalter)
+default partial alphanumeric_keys
+xkb_symbols "jawi" {
+    name[Group1]= "Indonesian (Jawi)";
+
+    key <TLDE> { [ 0x1000670,    Arabic_shadda      ] }; // ـٰ supercript alef
+
+    key <AE01> { [ 0x1000661,    exclam             ] };
+    key <AE02> { [ 0x1000662,    at                 ] };
+    key <AE03> { [ 0x1000663,    numbersign         ] };
+    key <AE04> { [ 0x1000664,    0x1000657          ] }; // ـٗ inverted damma
+    key <AE05> { [ 0x1000665,    Arabic_percent     ] };
+    key <AE06> { [ 0x1000666,    asciicircum        ] };
+    key <AE07> { [ 0x1000667,    ampersand          ] };
+    key <AE08> { [ 0x1000668,    asterisk           ] };
+    key <AE09> { [ 0x1000669,    parenright         ] };
+    key <AE10> { [ 0x1000660,    parenleft          ] };
+    key <AE11> { [ minus,        Arabic_tatweel     ] };
+    key <AE12> { [ equal,        plus               ] };
+
+    key <AD01> { [ Arabic_qaf,   Arabic_hamza       ] };
+    key <AD02> { [ Arabic_waw,   Arabic_hamzaonwaw  ] };
+    // ARABIC LETTER YEH WITH SMALL V 0x10006ce (my proposal for E)
+    key <AD03> { [ Arabic_yeh,   Arabic_ain         ] };
+    key <AD04> { [ Arabic_ra,    0x1000656          ] }; // ـٖ subscript alef
+    key <AD05> { [ Arabic_teh,   Arabic_tah         ] };
+    key <AD06> { [ Arabic_yeh,   Arabic_alefmaksura ] };
+    key <AD07> { [ Arabic_damma, Arabic_hamzaonalef ] };
+    key <AD08> { [ Arabic_kasra, Arabic_hamzaunderalef ] };
+    // ARABIC LETTER OE 0x10006c6 (my proposal for O)
+    key <AD09> { [ Arabic_waw,   Arabic_sukun       ] };
+    key <AD10> { [ 0x10006a4,    Arabic_tehmarbuta  ] }; // Ú¤ p
+    key <AD11> { [ Arabic_fathatan, 0x1000671       ] }; // Ù± alef wasla
+    key <AD12> { [ Arabic_kasratan, Arabic_hamzaonyeh ] };
+
+    key <AC01> { [ Arabic_fatha, Arabic_alef        ] };
+    key <AC02> { [ Arabic_seen,  Arabic_sad         ] };
+    key <AC03> { [ Arabic_dal,   Arabic_dad         ] };
+    key <AC04> { [ Arabic_feh,   0x10006a0          ] }; // Ú  ng
+    key <AC05> { [ 0x1000762,    Arabic_ghain       ] }; // ݢ g (prefered)
+    key <AC06> { [ Arabic_ha,    Arabic_hah         ] };
+    key <AC07> { [ Arabic_jeem,  0x10006ac          ] }; // Ú¬ g
+    key <AC08> { [ Arabic_kaf,   0x10006a9          ] }; // Ú© k (prefered)
+    key <AC09> { [ Arabic_lam,   0x1000653          ] }; // ـٓ maddah above
+    key <AC10> { [ Arabic_semicolon, colon          ] };
+    key <AC11> { [ apostrophe,	 quotedbl           ] };
+
+    key <BKSL> { [ Arabic_dammatan, Arabic_maddaonalef ] };
+
+//  key <LSGT> { [ bar,          brokenbar	        ] };
+
+    key <AB01> { [ Arabic_zain,  Arabic_zah         ] };
+    key <AB02> { [ Arabic_khah,  Arabic_sheen       ] };
+    key <AB03> { [ 0x1000686,    Arabic_thal        ] }; // Ú† c/ch
+    key <AB04> { [ 0x10006cf,    Arabic_theh        ] }; // ۏ v
+    key <AB05> { [ Arabic_beh,   0x10000bb          ] }; // »
+    key <AB06> { [ Arabic_noon,  0x10006bd          ] }; // Ú½ ny
+    key <AB07> { [ Arabic_meem,  0x10000ab          ] }; // «
+    key <AB08> { [ Arabic_comma, less               ] };
+    key <AB09> { [ 0x10006d4,    greater            ] }; // Û” full stop
+    key <AB10> { [ slash,        Arabic_question_mark ] };
+};
+
diff --git a/symbols/my b/symbols/my
new file mode 100644
index 0000000..22cebef
--- /dev/null
+++ b/symbols/my
@@ -0,0 +1,7 @@
+default partial alphanumeric_keys
+xkb_symbols "jawi" {
+    include "id(jawi)"
+
+    name[Group1]= "Malay (Jawi)";
+};
+