diff --git a/java/res/xml-v16/key_hindi1_shift.xml b/java/res/xml-v16/key_hindi1_shift.xml
new file mode 100644
index 0000000000000000000000000000000000000000..19b964367e15b6647e7f7f41bdba209174afc67c
--- /dev/null
+++ b/java/res/xml-v16/key_hindi1_shift.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0903: "ः" DEVANAGARI SIGN VISARGA -->
+    <Key
+        latin:keyLabel="&#x0903;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/key_hindi3_right.xml b/java/res/xml-v16/key_hindi3_right.xml
new file mode 100644
index 0000000000000000000000000000000000000000..232810f986241fb00bf10deb4e6d94495587302d
--- /dev/null
+++ b/java/res/xml-v16/key_hindi3_right.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+093C: "़" DEVANAGARI SIGN NUKTA
+         U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
+         U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
+         U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+    <Key
+        latin:keyLabel="&#x093C;"
+        latin:moreKeys="&#x097D;,&#x0970;,&#x093D;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/key_hindi3_shift_left.xml b/java/res/xml-v16/key_hindi3_shift_left.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1eb1768a1a971bccbc0c79fb8ac33c20393684bd
--- /dev/null
+++ b/java/res/xml-v16/key_hindi3_shift_left.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+         U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+    <Key
+        latin:keyLabel="&#x0901;"
+        latin:moreKeys="&#x0945;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/key_hindi3_shift_right.xml b/java/res/xml-v16/key_hindi3_shift_right.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0f26cb55ccd6048b74960631e04f5df58bef50ad
--- /dev/null
+++ b/java/res/xml-v16/key_hindi3_shift_right.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
+         U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR -->
+    <Key
+        latin:keyLabel="&#x0943;"
+        latin:moreKeys="&#x0944;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keys_hindi1_left5.xml b/java/res/xml-v16/keys_hindi1_left5.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e3ad299ff394417509e15c5a22660b2b0a3a3359
--- /dev/null
+++ b/java/res/xml-v16/keys_hindi1_left5.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
+         U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA
+         U+0967: "१" DEVANAGARI DIGIT ONE -->
+    <Key
+        latin:keyLabel="&#x094C;"
+        latin:moreKeys="&#x094C;&#x0902;,%"
+        latin:keyHintLabel="1"
+        latin:additionalMoreKeys="&#x0967;,1"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI
+         U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA
+         U+0968: "२" DEVANAGARI DIGIT TWO -->
+    <Key
+        latin:keyLabel="&#x0948;"
+        latin:moreKeys="&#x0948;&#x0902;,%"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="&#x0968;,2"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA
+         U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA
+         U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU
+         U+0969: "३" DEVANAGARI DIGIT THREE -->
+    <Key
+        latin:keyLabel="&#x093E;"
+        latin:moreKeys="&#x093E;&#x0902;,&#x093E;&#x0901;,%"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="&#x0969;,3"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II
+         U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA
+         U+096A: "४" DEVANAGARI DIGIT FOUR -->
+    <Key
+        latin:keyLabel="&#x0940;"
+        latin:moreKeys="&#x0940;&#x0902;,%"
+        latin:keyHintLabel="4"
+        latin:additionalMoreKeys="&#x096A;,4"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU
+         U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA
+         U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU
+         U+096B: "५" DEVANAGARI DIGIT FIVE -->
+    <Key
+        latin:keyLabel="&#x0942;"
+        latin:moreKeys="&#x0942;&#x0902;,&#x0942;&#x0901;,%"
+        latin:keyHintLabel="5"
+        latin:additionalMoreKeys="&#x096B;,5"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keys_hindi2_left5.xml b/java/res/xml-v16/keys_hindi2_left5.xml
new file mode 100644
index 0000000000000000000000000000000000000000..05c4f57e9ff8122b88f7e85e0f30cbaf77a7cff9
--- /dev/null
+++ b/java/res/xml-v16/keys_hindi2_left5.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O
+         U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
+         U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
+         U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O -->
+    <Key
+        latin:keyLabel="&#x094B;"
+        latin:moreKeys="&#x094B;&#x0902;,&#x0949;,&#x094A;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E
+         U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA -->
+    <Key
+        latin:keyLabel="&#x0947;"
+        latin:moreKeys="&#x0947;&#x0902;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+    <Key
+        latin:keyLabel="&#x094D;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I
+         U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA -->
+    <Key
+        latin:keyLabel="&#x093F;"
+        latin:moreKeys="&#x093F;&#x0902;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U
+         U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA
+         U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU -->
+    <Key
+        latin:keyLabel="&#x0941;"
+        latin:moreKeys="&#x0941;&#x0902;,&#x0941;&#x0901;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml-v16/keys_hindi3_left2.xml b/java/res/xml-v16/keys_hindi3_left2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9474c17638340b4bbad432d191613e62d9e76f35
--- /dev/null
+++ b/java/res/xml-v16/keys_hindi3_left2.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
+    <Key
+        latin:keyLabel="&#x0949;"
+        latin:keyLabelFlags="fontNormal" />
+    <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
+    <Key
+        latin:keyLabel="&#x0902;"
+        latin:keyLabelFlags="fontNormal" />
+</merge>
diff --git a/java/res/xml/key_hindi1_shift.xml b/java/res/xml/key_hindi1_shift.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0db5ae9afa22cfcb7286ce1aaf2e4703bdad6b11
--- /dev/null
+++ b/java/res/xml/key_hindi1_shift.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0903: "ः" DEVANAGARI SIGN VISARGA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0903;"
+        latin:code="0x0903"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/key_hindi3_right.xml b/java/res/xml/key_hindi3_right.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5a97355f679a5d9249d757beba7644359c06b433
--- /dev/null
+++ b/java/res/xml/key_hindi3_right.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+093C: "़" DEVANAGARI SIGN NUKTA
+         U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
+         U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
+         U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x093C;"
+        latin:code="0x093C"
+        latin:moreKeys="&#x25CC;&#x097D;|&#x097D;,&#x25CC;&#x0970;|&#x0970;,&#x25CC;&#x093D;|&#x093D;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/key_hindi3_shift_left.xml b/java/res/xml/key_hindi3_shift_left.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c5e2f13868fb14005808587876b00b022a612259
--- /dev/null
+++ b/java/res/xml/key_hindi3_shift_left.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
+         U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0901;"
+        latin:code="0x0901"
+        latin:moreKeys="&#x25CC;&#x0945;|&#x0945;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/key_hindi3_shift_right.xml b/java/res/xml/key_hindi3_shift_right.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0da116ab84f3f95e1bda5d4d754b169b8390e7dd
--- /dev/null
+++ b/java/res/xml/key_hindi3_shift_right.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
+         U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0943;"
+        latin:code="0x0943"
+        latin:moreKeys="&#x25CC;&#x0944;|&#x0944;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keys_hindi1_left5.xml b/java/res/xml/keys_hindi1_left5.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8757afeaf875e60b562a0a1e9b08598762de3134
--- /dev/null
+++ b/java/res/xml/keys_hindi1_left5.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
+         U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA
+         U+0967: "१" DEVANAGARI DIGIT ONE -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x094C;"
+        latin:code="0x094C"
+        latin:moreKeys="&#x25CC;&#x094C;&#x0902;|&#x094C;&#x0902;,%"
+        latin:keyHintLabel="1"
+        latin:additionalMoreKeys="&#x0967;,1"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0948: "ै" DEVANAGARI VOWEL SIGN AI
+         U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA
+         U+0968: "२" DEVANAGARI DIGIT TWO -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0948;"
+        latin:code="0x0948"
+        latin:moreKeys="&#x25CC;&#x0948;&#x0902;|&#x0948;&#x0902;,%"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="&#x0968;,2"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+093E: "ा" DEVANAGARI VOWEL SIGN AA
+         U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA
+         U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU
+         U+0969: "३" DEVANAGARI DIGIT THREE -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x093E;"
+        latin:code="0x093E"
+        latin:moreKeys="&#x25CC;&#x093E;&#x0902;|&#x093E;&#x0902;,&#x25CC;&#x093E;&#x0901;|&#x093E;&#x0901;,%"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="&#x0969;,3"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0940: "ी" DEVANAGARI VOWEL SIGN II
+         U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA
+         U+096A: "४" DEVANAGARI DIGIT FOUR -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0940;"
+        latin:code="0x0940"
+        latin:moreKeys="&#x25CC;&#x0940;&#x0902;|&#x0940;&#x0902;,%"
+        latin:keyHintLabel="4"
+        latin:additionalMoreKeys="&#x096A;,4"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0942: "ू" DEVANAGARI VOWEL SIGN UU
+         U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA
+         U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU
+         U+096B: "५" DEVANAGARI DIGIT FIVE -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0942;"
+        latin:code="0x0942"
+        latin:moreKeys="&#x25CC;&#x0942;&#x0902;|&#x0942;&#x0902;,&#x25CC;&#x0942;&#x0901;|&#x0942;&#x0901;,%"
+        latin:keyHintLabel="5"
+        latin:additionalMoreKeys="&#x096B;,5"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keys_hindi2_left5.xml b/java/res/xml/keys_hindi2_left5.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4c3a5e0511564251ef90fc92c6629016d8ae4c36
--- /dev/null
+++ b/java/res/xml/keys_hindi2_left5.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+094B: "ो" DEVANAGARI VOWEL SIGN O
+         U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
+         U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
+         U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x094B;"
+        latin:code="0x094B"
+        latin:moreKeys="&#x25CC;&#x094B;&#x0902;|&#x094B;&#x0902;,&#x25CC;&#x0949;,&#x094A;|&#x0949;,&#x094A;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0947: "े" DEVANAGARI VOWEL SIGN E
+         U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0947;"
+        latin:code="0x0947"
+        latin:moreKeys="&#x25CC;&#x0947;&#x0902;|&#x0947;&#x0902;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+094D: "्" DEVANAGARI SIGN VIRAMA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x094D;"
+        latin:code="0x094D"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+093F: "ि" DEVANAGARI VOWEL SIGN I
+         U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA -->
+    <Key
+        latin:keyLabel="&#x093F;&#x25CC;"
+        latin:code="0x093F"
+        latin:moreKeys="&#x093F;&#x25CC;&#x0902;|&#x093F;&#x0902;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0941: "ु" DEVANAGARI VOWEL SIGN U
+         U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA
+         U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0941;"
+        latin:code="0x0941"
+        latin:moreKeys="&#x25CC;&#x0941;&#x0902;|&#x0941;&#x0902;,&#x25CC;&#x0941;&#x0901;|&#x0941;&#x0901;"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/keys_hindi3_left2.xml b/java/res/xml/keys_hindi3_left2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4f1ad16ef7e65f837ae010de979b26dbf95f3384
--- /dev/null
+++ b/java/res/xml/keys_hindi3_left2.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The code point U+25CC for key label is needed because the font rendering system prior to
+     API version 16 can't automatically render dotted circle for incomplete combining letter
+     of Hindi. The files named res/xml/{key,keys}_hindi*.xml have this U+25CC hack, although the
+     counterpart files named res/xml-v16/{key,keys}_hindi*.xml don't have this hack. -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0949;"
+        latin:code="0x0949"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+    <!-- U+25CC: "◌" DOTTED CIRCLE
+         U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
+    <Key
+        latin:keyLabel="&#x25CC;&#x0902;"
+        latin:code="0x0902"
+        latin:keyLabelFlags="fontNormal|followKeyLetterRatio" />
+</merge>
diff --git a/java/res/xml/rowkeys_hindi1.xml b/java/res/xml/rowkeys_hindi1.xml
index 11208045cabc9f375ea73300d7bf017465521324..a761a6c69e1d896aa201b157434f482397e1e8ce 100644
--- a/java/res/xml/rowkeys_hindi1.xml
+++ b/java/res/xml/rowkeys_hindi1.xml
@@ -61,10 +61,11 @@
             <Key
                 latin:keyLabel="&#x092D;"
                 latin:keyLabelFlags="fontNormal" />
-            <!-- U+0903: "ः" DEVANAGARI SIGN VISARGA -->
-            <Key
-                latin:keyLabel="&#x0903;"
-                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_hindi1_shift" />
             <!-- U+0918: "घ" DEVANAGARI LETTER GHA -->
             <Key
                 latin:keyLabel="&#x0918;"
@@ -86,53 +87,11 @@
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
-            <!-- U+094C: "ौ" DEVANAGARI VOWEL SIGN AU
-                 U+094C/U+0902: "ौं" DEVANAGARI VOWEL SIGN AU/DEVANAGARI SIGN ANUSVARA
-                 U+0967: "१" DEVANAGARI DIGIT ONE -->
-            <Key
-                latin:keyLabel="&#x094C;"
-                latin:moreKeys="&#x094C;&#x0902;,%"
-                latin:keyHintLabel="1"
-                latin:additionalMoreKeys="&#x0967;,1"
-                latin:keyLabelFlags="fontNormal" />
-            <!-- U+0948: "ै" DEVANAGARI VOWEL SIGN AI
-                 U+0948/U+0902: "ैं" DEVANAGARI VOWEL SIGN AI/DEVANAGARI SIGN ANUSVARA
-                 U+0968: "२" DEVANAGARI DIGIT TWO -->
-            <Key
-                latin:keyLabel="&#x0948;"
-                latin:moreKeys="&#x0948;&#x0902;,%"
-                latin:keyHintLabel="2"
-                latin:additionalMoreKeys="&#x0968;,2"
-                latin:keyLabelFlags="fontNormal" />
-            <!-- U+093E: "ा" DEVANAGARI VOWEL SIGN AA
-                 U+093E/U+0902: "ां" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN ANUSVARA
-                 U+093E/U+0901: "ाँ" DEVANAGARI VOWEL SIGN AA/DEVANAGARI SIGN CANDRABINDU
-                 U+0969: "३" DEVANAGARI DIGIT THREE -->
-            <Key
-                latin:keyLabel="&#x093E;"
-                latin:moreKeys="&#x093E;&#x0902;,&#x093E;&#x0901;,%"
-                latin:keyHintLabel="3"
-                latin:additionalMoreKeys="&#x0969;,3"
-                latin:keyLabelFlags="fontNormal" />
-            <!-- U+0940: "ी" DEVANAGARI VOWEL SIGN II
-                 U+0940/U+0902: "ीं" DEVANAGARI VOWEL SIGN II/DEVANAGARI SIGN ANUSVARA
-                 U+096A: "४" DEVANAGARI DIGIT FOUR -->
-            <Key
-                latin:keyLabel="&#x0940;"
-                latin:moreKeys="&#x0940;&#x0902;,%"
-                latin:keyHintLabel="4"
-                latin:additionalMoreKeys="&#x096A;,4"
-                latin:keyLabelFlags="fontNormal" />
-            <!-- U+0942: "ू" DEVANAGARI VOWEL SIGN UU
-                 U+0942/U+0902: "ूं" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN ANUSVARA
-                 U+0942/U+0901: "ूँ" DEVANAGARI VOWEL SIGN UU/DEVANAGARI SIGN CANDRABINDU
-                 U+096B: "५" DEVANAGARI DIGIT FIVE -->
-            <Key
-                latin:keyLabel="&#x0942;"
-                latin:moreKeys="&#x0942;&#x0902;,&#x0942;&#x0901;,%"
-                latin:keyHintLabel="5"
-                latin:additionalMoreKeys="&#x096B;,5"
-                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/keys_hindi1_left5" />
             <!-- U+092C: "ब" DEVANAGARI LETTER BA
                  U+092C/U+0952: "ब॒" DEVANAGARI LETTER BA/DEVANAGARI STRESS SIGN ANUDATTA -->
             <Key
diff --git a/java/res/xml/rowkeys_hindi2.xml b/java/res/xml/rowkeys_hindi2.xml
index e7c67dbe7fa0568dd651595a2e258dd3e5cd7248..9545b840f70558aab0773628b90f51ac381c9b46 100644
--- a/java/res/xml/rowkeys_hindi2.xml
+++ b/java/res/xml/rowkeys_hindi2.xml
@@ -96,37 +96,11 @@
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
-            <!-- U+094B: "ो" DEVANAGARI VOWEL SIGN O
-                 U+094B/U+0902: "қं" DEVANAGARI VOWEL SIGN O/DEVANAGARI SIGN ANUSVARA
-                 U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O
-                 U+094A: "ॊ" DEVANAGARI VOWEL SIGN SHORT O -->
-            <Key
-                latin:keyLabel="&#x094B;"
-                latin:moreKeys="&#x094B;&#x0902;,&#x0949;,&#x094A;"
-                latin:keyLabelFlags="fontNormal" />
-            <!-- U+0947: "े" DEVANAGARI VOWEL SIGN E
-                 U+0947/U+0902: "ें" DEVANAGARI VOWEL SIGN E/DEVANAGARI SIGN ANUSVARA -->
-            <Key
-                latin:keyLabel="&#x0947;"
-                latin:moreKeys="&#x0947;&#x0902;"
-                latin:keyLabelFlags="fontNormal" />
-            <!-- U+094D: "्" DEVANAGARI SIGN VIRAMA -->
-            <Key
-                latin:keyLabel="&#x094D;"
-                latin:keyLabelFlags="fontNormal" />
-            <!-- U+093F: "ि" DEVANAGARI VOWEL SIGN I
-                 U+093F/U+0902: "िं" DEVANAGARI VOWEL SIGN I/DEVANAGARI SIGN ANUSVARA -->
-            <Key
-                latin:keyLabel="&#x093F;"
-                latin:moreKeys="&#x093F;&#x0902;"
-                latin:keyLabelFlags="fontNormal" />
-            <!-- U+0941: "ु" DEVANAGARI VOWEL SIGN U
-                 U+0941/U+0902: "ुं" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN ANUSVARA
-                 U+0941/U+0901: "ुँ" DEVANAGARI VOWEL SIGN U/DEVANAGARI SIGN CANDRABINDU -->
-            <Key
-                latin:keyLabel="&#x0941;"
-                latin:moreKeys="&#x0941;&#x0902;,&#x0941;&#x0901;"
-                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/keys_hindi2_left5" />
             <!-- U+092A: "प" DEVANAGARI LETTER PA -->
             <Key
                 latin:keyLabel="&#x092A;"
diff --git a/java/res/xml/rowkeys_hindi3.xml b/java/res/xml/rowkeys_hindi3.xml
index ebbff3e333401dceb26605c0380b80ffc2ef5a4f..3014907edf5d0f17c1c279d4342bed5ee17d9aff 100644
--- a/java/res/xml/rowkeys_hindi3.xml
+++ b/java/res/xml/rowkeys_hindi3.xml
@@ -29,12 +29,11 @@
             <Key
                 latin:keyLabel="&#x0911;"
                 latin:keyLabelFlags="fontNormal" />
-            <!-- U+0901: "ँ" DEVANAGARI SIGN CANDRABINDU
-                 U+0945: "ॅ" DEVANAGARI VOWEL SIGN CANDRA E-->
-            <Key
-                latin:keyLabel="&#x0901;"
-                latin:moreKeys="&#x0945;"
-                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_hindi3_shift_left" />
             <!-- U+0923: "ण" DEVANAGARI LETTER NNA -->
             <Key
                 latin:keyLabel="&#x0923;"
@@ -56,26 +55,22 @@
             <Key
                 latin:keyLabel="&#x0937;"
                 latin:keyLabelFlags="fontNormal" />
-            <!-- U+0943: "ृ" DEVANAGARI VOWEL SIGN VOCALIC R
-                 U+0944: "ॄ" DEVANAGARI VOWEL SIGN VOCALIC RR -->
-            <Key
-                latin:keyLabel="&#x0943;"
-                latin:moreKeys="&#x0944;"
-                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_hindi3_shift_right" />
             <!-- U+091E: "ञ" DEVANAGARI LETTER NYA -->
             <Key
                 latin:keyLabel="&#x091E;"
                 latin:keyLabelFlags="fontNormal" />
         </case>
         <default>
-            <!-- U+0949: "ॉ" DEVANAGARI VOWEL SIGN CANDRA O -->
-            <Key
-                latin:keyLabel="&#x0949;"
-                latin:keyLabelFlags="fontNormal" />
-            <!-- U+0902: "ं" DEVANAGARI SIGN ANUSVARA -->
-            <Key
-                latin:keyLabel="&#x0902;"
-                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/keys_hindi3_left2" />
             <!-- U+092E: "म" DEVANAGARI LETTER MA
                  U+0950: "ॐ" DEVANAGARI OM -->
             <Key
@@ -111,14 +106,11 @@
                 latin:keyLabel="&#x092F;"
                 latin:moreKeys="&#x095F;"
                 latin:keyLabelFlags="fontNormal" />
-            <!-- U+093C: "़" DEVANAGARI SIGN NUKTA
-                 U+097D: "ॽ" DEVANAGARI LETTER GLOTTAL STOP
-                 U+0970: "॰" DEVANAGARI ABBREVIATION SIGN
-                 U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
-            <Key
-                latin:keyLabel="&#x093C;"
-                latin:moreKeys="&#x097D;,&#x0970;,&#x093D;"
-                latin:keyLabelFlags="fontNormal" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of Hindi, different set of
+                 Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/key_hindi3_right" />
          </default>
     </switch>
 </merge>