diff --git a/dictionaries/de_wordlist.xml b/dictionaries/de_wordlist.xml
index 40140f5..c7e46c6 100644
--- a/dictionaries/de_wordlist.xml
+++ b/dictionaries/de_wordlist.xml
@@ -1,9 +1,10 @@
-<wordlist locale="de" description="Allgemeines Wörterbuch" date="1337171108" version="7" options="german_umlaut_processing">
+<wordlist locale="de" description="Deutsch" date="1337654924" version="10" options="german_umlaut_processing">
  <w f="203" flags="">der</w>
  <w f="200" flags="">und</w>
  <w f="198" flags="">die</w>
  <w f="195" flags="">in</w>
  <w f="191" flags="">von</w>
+ <w f="190">über</w>
  <w f="188" flags="">den</w>
  <w f="186" flags="">des</w>
  <w f="185" flags="">im</w>
diff --git a/dictionaries/en_GB_wordlist.xml b/dictionaries/en_GB_wordlist.xml
index b2d703c..79ce932 100644
--- a/dictionaries/en_GB_wordlist.xml
+++ b/dictionaries/en_GB_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="en_GB" description="Main dictionary (UK English)" date="1337328254" version="8">
+<wordlist locale="en_GB" description="English (UK)" date="1337670570" version="10">
  <w f="222" flags="">the</w>
  <w f="214" flags="">of</w>
  <w f="212" flags="">and</w>
@@ -45,6 +45,7 @@
  <w f="174" flags="">time</w>
  <w f="173" flags="">all</w>
  <w f="173" flags="">be</w>
+ <w f="173" flags="">me</w>
  <w f="173" flags="">more</w>
  <w f="172" flags="">only</w>
  <w f="172" flags="">when</w>
@@ -164,6 +165,7 @@
  <w f="160" flags="">us</w>
  <w f="160" flags="">very</w>
  <w f="160" flags="">won</w>
+ <w f="160" flags="">yes</w>
  <w f="160" flags="">you're</w>
  <w f="159" flags="">along</w>
  <w f="159" flags="">built</w>
@@ -1157,7 +1159,7 @@
  <w f="138" flags="">little</w>
  <w f="138" flags="">mass</w>
  <w f="138" flags="">matches</w>
- <w f="138" flags="">me</w>
+ <w f="138" flags="">meat</w>
  <w f="138" flags="">offer</w>
  <w f="138" flags="">parties</w>
  <w f="138" flags="">pay</w>
@@ -3128,6 +3130,7 @@
  <w f="125" flags="">temperatures</w>
  <w f="125" flags="">tenure</w>
  <w f="125" flags="">thinking</w>
+ <w f="125">this'd</w>
  <w f="125" flags="">tone</w>
  <w f="125" flags="">tourist</w>
  <w f="125" flags="">trail</w>
@@ -3264,7 +3267,6 @@
  <w f="124" flags="">maps</w>
  <w f="124" flags="">marks</w>
  <w f="124" flags="">measured</w>
- <w f="124" flags="">meat</w>
  <w f="124" flags="">memorial</w>
  <w f="124" flags="">met</w>
  <w f="124" flags="">mines</w>
@@ -4150,6 +4152,7 @@
  <w f="120" flags="">fun</w>
  <w f="120" flags="">gallery</w>
  <w f="120" flags="">girlfriend</w>
+ <w f="120">gmail</w>
  <w f="120" flags="">grain</w>
  <w f="120" flags="">grass</w>
  <w f="120" flags="">guidance</w>
@@ -4285,6 +4288,7 @@
  <w f="120" flags="">thrown</w>
  <w f="120" flags="">tomorrow</w>
  <w f="120" flags="">tonight</w>
+ <w f="120">totally</w>
  <w f="120" flags="">towers</w>
  <w f="120" flags="">transformation</w>
  <w f="120" flags="">transported</w>
@@ -5072,7 +5076,6 @@
  <w f="117" flags="">tobacco</w>
  <w f="117" flags="">topped</w>
  <w f="117" flags="">torpedo</w>
- <w f="117" flags="">totally</w>
  <w f="117" flags="">trace</w>
  <w f="117" flags="">transform</w>
  <w f="117" flags="">transmitted</w>
@@ -5552,6 +5555,7 @@
  <w f="115" flags="">heated</w>
  <w f="115" flags="">honours</w>
  <w f="115" flags="">hoping</w>
+ <w f="115">how're</w>
  <w f="115" flags="">hunt</w>
  <w f="115" flags="">immigrant</w>
  <w f="115" flags="">inaugurated</w>
@@ -8019,6 +8023,7 @@
  <w f="108" flags="">dug</w>
  <w f="108" flags="">dwarf</w>
  <w f="108" flags="">dwellings</w>
+ <w f="108">e-mail</w>
  <w f="108" flags="">economist</w>
  <w f="108" flags="">elevator</w>
  <w f="108" flags="">embraced</w>
@@ -11130,7 +11135,6 @@
  <w f="102" flags="">worms</w>
  <w f="102" flags="">wrestled</w>
  <w f="102" flags="">yeast</w>
- <w f="102" flags="">yes</w>
  <w f="101" flags="">Abdul</w>
  <w f="101" flags="">Aberdeen</w>
  <w f="101" flags="">Adolf</w>
@@ -11735,6 +11739,7 @@
  <w f="100" flags="">balancing</w>
  <w f="100" flags="">balloons</w>
  <w f="100" flags="">banquet</w>
+ <w f="100">barbeque</w>
  <w f="100" flags="">barge</w>
  <w f="100" flags="">barley</w>
  <w f="100" flags="">basilica</w>
@@ -12898,6 +12903,7 @@
  <w f="98" flags="">Rex</w>
  <w f="98" flags="">Riley</w>
  <w f="98" flags="abreviation">SBS</w>
+ <w f="98">SMS</w>
  <w f="98" flags="">Salisbury</w>
  <w f="98" flags="">Santos</w>
  <w f="98" flags="">Saturn</w>
@@ -13135,6 +13141,7 @@
  <w f="98" flags="">flu</w>
  <w f="98" flags="">fluorescent</w>
  <w f="98" flags="">flush</w>
+ <w f="98">foe</w>
  <w f="98" flags="">footprint</w>
  <w f="98" flags="">forecasts</w>
  <w f="98" flags="">foreground</w>
@@ -13408,6 +13415,7 @@
  <w f="98" flags="">thrash</w>
  <w f="98" flags="">thyroid</w>
  <w f="98" flags="">tides</w>
+ <w f="98">timeframe</w>
  <w f="98" flags="">tolerated</w>
  <w f="98" flags="">tolls</w>
  <w f="98" flags="">tonal</w>
@@ -15178,6 +15186,7 @@
  <w f="95" flags="">nephews</w>
  <w f="95" flags="">netted</w>
  <w f="95" flags="">numeric</w>
+ <w f="95">nut</w>
  <w f="95" flags="">obey</w>
  <w f="95" flags="">obscured</w>
  <w f="95" flags="">obverse</w>
@@ -21006,6 +21015,7 @@
  <w f="88" flags="">wafer</w>
  <w f="88" flags="">warmed</w>
  <w f="88" flags="">wasps</w>
+ <w f="88">wax</w>
  <w f="88" flags="">wellness</w>
  <w f="88" flags="">whistles</w>
  <w f="88" flags="">wills</w>
@@ -26639,7 +26649,6 @@
  <w f="82" flags="">gust</w>
  <w f="82" flags="">guts</w>
  <w f="82" flags="">gymnasiums</w>
- <w f="82">ha-ha</w>
  <w f="82">half-life</w>
  <w f="82" flags="">halides</w>
  <w f="82" flags="">hallucinogenic</w>
@@ -27187,6 +27196,7 @@
  <w f="81" flags="">Ares</w>
  <w f="81" flags="">Argonauts</w>
  <w f="81" flags="">Ashkenazi</w>
+ <w f="81">Asus</w>
  <w f="81" flags="">Athenians</w>
  <w f="81" flags="">Augustinian</w>
  <w f="81" flags="">Austen</w>
@@ -28590,6 +28600,7 @@
  <w f="80" flags="">Weinberg</w>
  <w f="80" flags="">Westmoreland</w>
  <w f="80" flags="">Westport</w>
+ <w f="80">Wi-Fi</w>
  <w f="80" flags="">Wilfrid</w>
  <w f="80" flags="">Windham</w>
  <w f="80" flags="">Worthington</w>
@@ -28893,6 +28904,7 @@
  <w f="80" flags="">evangelistic</w>
  <w f="80" flags="">evaporate</w>
  <w f="80" flags="">eventing</w>
+ <w f="80">everything's</w>
  <w f="80" flags="">excision</w>
  <w f="80" flags="">exclaims</w>
  <w f="80" flags="">exerting</w>
@@ -29565,6 +29577,7 @@
  <w f="79" flags="">Guatemalan</w>
  <w f="79" flags="">Guevara</w>
  <w f="79" flags="">Gustavo</w>
+ <w f="79">HTC</w>
  <w f="79" flags="abreviation">HVDC</w>
  <w f="79" flags="">Haines</w>
  <w f="79" flags="">Hannover</w>
@@ -30119,6 +30132,7 @@
  <w f="79" flags="">genre's</w>
  <w f="79" flags="">geometrically</w>
  <w f="79" flags="">ghee</w>
+ <w f="79">girls'</w>
  <w f="79" flags="">glandular</w>
  <w f="79" flags="">glittering</w>
  <w f="79" flags="">goaltending</w>
@@ -30261,6 +30275,7 @@
  <w f="79" flags="">metamorphosed</w>
  <w f="79" flags="">midterm</w>
  <w f="79" flags="">midtown</w>
+ <w f="79">might've</w>
  <w f="79" flags="">millionaires</w>
  <w f="79" flags="">mindful</w>
  <w f="79" flags="">ministered</w>
@@ -30386,6 +30401,7 @@
  <w f="79" flags="">quilt</w>
  <w f="79" flags="">race's</w>
  <w f="79" flags="">radio's</w>
+ <w f="79">ramen</w>
  <w f="79" flags="">rapprochement</w>
  <w f="79" flags="">rayon</w>
  <w f="79" flags="">readability</w>
@@ -32278,6 +32294,7 @@
  <w f="77" flags="abreviation">WG</w>
  <w f="77" flags="abreviation">WNEW</w>
  <w f="77" flags="">Walloon</w>
+ <w f="77">Walmart</w>
  <w f="77" flags="">Weldon</w>
  <w f="77" flags="">Weller</w>
  <w f="77" flags="">Whitlam</w>
@@ -32528,6 +32545,7 @@
  <w f="77" flags="">echolocation</w>
  <w f="77" flags="">ecologist</w>
  <w f="77" flags="">ecologists</w>
+ <w f="77">editors'</w>
  <w f="77" flags="">effigies</w>
  <w f="77" flags="">egos</w>
  <w f="77" flags="">electrocution</w>
@@ -33010,6 +33028,7 @@
  <w f="77" flags="">slimmer</w>
  <w f="77" flags="">slipper</w>
  <w f="77" flags="">slurs</w>
+ <w f="77">smartphone</w>
  <w f="77" flags="">smokes</w>
  <w f="77" flags="">snapshots</w>
  <w f="77" flags="">snorkeling</w>
@@ -33042,6 +33061,7 @@
  <w f="77" flags="">squall</w>
  <w f="77" flags="">squandered</w>
  <w f="77" flags="">stares</w>
+ <w f="77">states'</w>
  <w f="77" flags="">steelhead</w>
  <w f="77" flags="">stencil</w>
  <w f="77" flags="">stepbrother</w>
@@ -33166,6 +33186,7 @@
  <w f="77" flags="">wedged</w>
  <w f="77" flags="">weeklies</w>
  <w f="77" flags="">wellbeing</w>
+ <w f="77">whatever's</w>
  <w f="77" flags="">whistleblower</w>
  <w f="77" flags="">wickedness</w>
  <w f="77" flags="">wilt</w>
@@ -34205,6 +34226,7 @@
  <w f="76" flags="">rationalisation</w>
  <w f="76" flags="">ravaging</w>
  <w f="76" flags="">reacquired</w>
+ <w f="76">readers'</w>
  <w f="76" flags="">realtime</w>
  <w f="76" flags="">reanimated</w>
  <w f="76" flags="">reapportionment</w>
@@ -34263,6 +34285,7 @@
  <w f="76" flags="">scents</w>
  <w f="76" flags="">schoolboys</w>
  <w f="76" flags="">schoolmates</w>
+ <w f="76">sci-fi</w>
  <w f="76" flags="">scooped</w>
  <w f="76" flags="">scoops</w>
  <w f="76" flags="">scopes</w>
@@ -34447,6 +34470,7 @@
  <w f="76" flags="">waxing</w>
  <w f="76" flags="">whaler</w>
  <w f="76" flags="">wheelers</w>
+ <w f="76">whenever's</w>
  <w f="76" flags="">whey</w>
  <w f="76" flags="">whitewashed</w>
  <w f="76" flags="">wholeheartedly</w>
@@ -35390,6 +35414,7 @@
  <w f="75" flags="">nomad</w>
  <w f="75" flags="">nonempty</w>
  <w f="75" flags="">nonverbal</w>
+ <w f="75">now's</w>
  <w f="75" flags="">obscures</w>
  <w f="75" flags="">obsessions</w>
  <w f="75" flags="">occultism</w>
@@ -35751,7 +35776,9 @@
  <w f="75" flags="">wedded</w>
  <w f="75" flags="">weft</w>
  <w f="75" flags="">westerners</w>
+ <w f="75">what'll</w>
  <w f="75" flags="">whistled</w>
+ <w f="75">whoever's</w>
  <w f="75" flags="">winegrowing</w>
  <w f="75" flags="">wintered</w>
  <w f="75" flags="">withstanding</w>
@@ -35809,6 +35836,7 @@
  <w f="74" flags="">Ben's</w>
  <w f="74" flags="">Benetton</w>
  <w f="74" flags="">Bevan</w>
+ <w f="74">Beyonce</w>
  <w f="74" flags="">Billy's</w>
  <w f="74" flags="">Biscayne</w>
  <w f="74" flags="">Blackadder</w>
@@ -36395,6 +36423,7 @@
  <w f="74" flags="">ellipsis</w>
  <w f="74" flags="">emanate</w>
  <w f="74" flags="">embalming</w>
+ <w f="74">emo</w>
  <w f="74" flags="">empathic</w>
  <w f="74" flags="">encroachments</w>
  <w f="74" flags="">engravers</w>
@@ -36528,6 +36557,7 @@
  <w f="74" flags="">hoppers</w>
  <w f="74" flags="">horoscope</w>
  <w f="74" flags="">housings</w>
+ <w f="74">how'd</w>
  <w f="74" flags="">humus</w>
  <w f="74" flags="">hussars</w>
  <w f="74" flags="">hustle</w>
@@ -56886,6 +56916,7 @@
  <w f="60" flags="">megacity</w>
  <w f="60" flags="">megalith</w>
  <w f="60" flags="">megalomania</w>
+ <w f="60">meme</w>
  <w f="60" flags="">memorial's</w>
  <w f="60" flags="">memorised</w>
  <w f="60" flags="">metafiction</w>
@@ -108059,6 +108090,7 @@
  <w f="25" flags="">Chernobyl's</w>
  <w f="25" flags="">Chesapeake's</w>
  <w f="25" flags="">Cheviots</w>
+ <w f="25">Chewbacca</w>
  <w f="25" flags="">Chimer</w>
  <w f="25" flags="">Chippendale's</w>
  <w f="25" flags="">Chretien's</w>
@@ -138949,6 +138981,7 @@
  <w f="1" flags="">Irrelative</w>
  <w f="1" flags="">Irtysh's</w>
  <w f="1" flags="">Irv's</w>
+ <w f="1">Isaac</w>
  <w f="1" flags="">Isadore's</w>
  <w f="1" flags="">Isidro's</w>
  <w f="1" flags="">Islamism's</w>
@@ -142637,6 +142670,7 @@
  <w f="1" flags="">Thunderclap's</w>
  <w f="1" flags="">Thunderer's</w>
  <w f="1" flags="">Thunderhead's</w>
+ <w f="1">Thur</w>
  <w f="1" flags="">Thurgau's</w>
  <w f="1" flags="">Thwacker</w>
  <w f="1" flags="">Thwarter</w>
@@ -143391,6 +143425,7 @@
  <w f="1" flags="">Xhosa's</w>
  <w f="1" flags="">Ximenes's</w>
  <w f="1" flags="">Ximenez's</w>
+ <w f="1">Xoom</w>
  <w f="1" flags="abreviation">YMMV</w>
  <w f="1" flags="">Yachtsman's</w>
  <w f="1" flags="">Yachtswoman's</w>
@@ -148396,6 +148431,7 @@
  <w f="1" flags="">hypothesiser</w>
  <w f="1" flags="">hypothesists</w>
  <w f="1" flags="">hysteroid</w>
+ <w f="1">iOS</w>
  <w f="1" flags="">ibuprofens</w>
  <w f="1" flags="">ichthyoid</w>
  <w f="1" flags="">iconography's</w>
@@ -152501,6 +152537,7 @@
  <w f="1" flags="">runers</w>
  <w f="1" flags="">runlet</w>
  <w f="1" flags="">runoff's</w>
+ <w f="1">runtime</w>
  <w f="1" flags="">rupture's</w>
  <w f="1" flags="">ruralists</w>
  <w f="1" flags="">ruralites</w>
@@ -155820,6 +155857,7 @@
  <w f="0" flags="medical">clitorises</w>
  <w f="0" flags="medical">cloaca</w>
  <w f="0" flags="medical">clyster</w>
+ <w f="0">cmon</w>
  <w f="0" flags="abreviation">co</w>
  <w f="0" flags="">cock</w>
  <w f="0" flags="">cockier</w>
@@ -155907,6 +155945,7 @@
  <w f="0" flags="offensive">dildo</w>
  <w f="0" flags="offensive">dildos</w>
  <w f="0" flags="n">dirty</w>
+ <w f="0">dogfood</w>
  <w f="0" flags="n">dogging</w>
  <w f="0" flags="medical">dominatrices</w>
  <w f="0" flags="n">dong</w>
@@ -155978,6 +156017,7 @@
  <w f="0" flags="offensive">farted</w>
  <w f="0" flags="offensive">farting</w>
  <w f="0" flags="offensive">farts</w>
+ <w f="0">fave</w>
  <w f="0" flags="medical">fecaliths</w>
  <w f="0" flags="medical">fellate</w>
  <w f="0" flags="medical">fellated</w>
@@ -156030,6 +156070,7 @@
  <w f="0" flags="n">gangbangs</w>
  <w f="0" flags="n">gaping</w>
  <w f="0" flags="">geek</w>
+ <w f="0">geez</w>
  <w f="0" flags="medical">genital</w>
  <w f="0" flags="medical">genitalia</w>
  <w f="0" flags="medical">genitalic</w>
@@ -156372,6 +156413,7 @@
  <w f="0" flags="">playgirl</w>
  <w f="0" flags="">playgirls</w>
  <w f="0" flags="n">playmates</w>
+ <w f="0">pls</w>
  <w f="0" flags="n">plumper</w>
  <w f="0" flags="">poi</w>
  <w f="0" flags="">pol</w>
@@ -156678,6 +156720,7 @@
  <w f="0" flags="medical">testicles</w>
  <w f="0" flags="medical">testicular</w>
  <w f="0" flags="medical">testis</w>
+ <w f="0">thingy</w>
  <w f="0" flags="">threesome</w>
  <w f="0" flags="">threesomes</w>
  <w f="0" flags="">thud</w>
@@ -156718,6 +156761,7 @@
  <w f="0" flags="babytalk">twat</w>
  <w f="0" flags="babytalk">twats</w>
  <w f="0" flags="">twit</w>
+ <w f="0">ull</w>
  <w f="0" flags="babytalk">underclothing</w>
  <w f="0" flags="babytalk">underwear</w>
  <w f="0" flags="babytalk">undy</w>
diff --git a/dictionaries/en_US_wordlist.xml b/dictionaries/en_US_wordlist.xml
index 1e14da4..075a104 100644
--- a/dictionaries/en_US_wordlist.xml
+++ b/dictionaries/en_US_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="en_GB" description="Main dictionary (US English)" date="1337328218" version="8">
+<wordlist locale="en_US" description="English (US)" date="1337667777" version="10">
  <w f="222" flags="">the</w>
  <w f="214" flags="">of</w>
  <w f="212" flags="">and</w>
@@ -45,6 +45,7 @@
  <w f="174" flags="">time</w>
  <w f="173" flags="">all</w>
  <w f="173" flags="">be</w>
+ <w f="173" flags="">me</w>
  <w f="173" flags="">more</w>
  <w f="172" flags="">only</w>
  <w f="172" flags="">when</w>
@@ -163,6 +164,7 @@
  <w f="160" flags="">us</w>
  <w f="160" flags="">very</w>
  <w f="160" flags="">won</w>
+ <w f="160" flags="">yes</w>
  <w f="160" flags="">you're</w>
  <w f="159" flags="">along</w>
  <w f="159" flags="">built</w>
@@ -1168,7 +1170,7 @@
  <w f="138" flags="">little</w>
  <w f="138" flags="">mass</w>
  <w f="138" flags="">matches</w>
- <w f="138" flags="">me</w>
+ <w f="138" flags="">meat</w>
  <w f="138" flags="">offer</w>
  <w f="138" flags="">parties</w>
  <w f="138" flags="">pay</w>
@@ -3337,7 +3339,6 @@
  <w f="124" flags="">maps</w>
  <w f="124" flags="">marks</w>
  <w f="124" flags="">measured</w>
- <w f="124" flags="">meat</w>
  <w f="124" flags="">memorial</w>
  <w f="124" flags="">met</w>
  <w f="124" flags="">mines</w>
@@ -11481,7 +11482,6 @@
  <w f="102" flags="">worms</w>
  <w f="102" flags="">wrestled</w>
  <w f="102" flags="">yeast</w>
- <w f="102" flags="">yes</w>
  <w f="101" flags="">Abdul</w>
  <w f="101" flags="">Aberdeen</w>
  <w f="101" flags="">Adolf</w>
@@ -27696,7 +27696,6 @@
  <w f="82" flags="">gust</w>
  <w f="82" flags="">guts</w>
  <w f="82" flags="">gymnasiums</w>
- <w f="82">ha-ha</w>
  <w f="82">half-life</w>
  <w f="82" flags="">halides</w>
  <w f="82" flags="">hallucinogenic</w>
@@ -59001,6 +59000,7 @@
  <w f="60" flags="">megacity</w>
  <w f="60" flags="">megalith</w>
  <w f="60" flags="">megalomania</w>
+ <w f="60">meme</w>
  <w f="60" flags="">memorial's</w>
  <w f="60" flags="">metafiction</w>
  <w f="60" flags="">metamorphoses</w>
diff --git a/dictionaries/en_wordlist.xml b/dictionaries/en_wordlist.xml
index 3839fb8..eff5fd2 100644
--- a/dictionaries/en_wordlist.xml
+++ b/dictionaries/en_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="en" description="Main dictionary" date="1337248980" version="7">
+<wordlist locale="en" description="English" date="1337667811" version="10">
  <w f="222" flags="">the</w>
  <w f="214" flags="">of</w>
  <w f="212" flags="">and</w>
@@ -45,6 +45,7 @@
  <w f="174" flags="">time</w>
  <w f="173" flags="">all</w>
  <w f="173" flags="">be</w>
+ <w f="173" flags="">me</w>
  <w f="173" flags="">more</w>
  <w f="172" flags="">only</w>
  <w f="172" flags="">when</w>
@@ -163,6 +164,7 @@
  <w f="160" flags="">us</w>
  <w f="160" flags="">very</w>
  <w f="160" flags="">won</w>
+ <w f="160" flags="">yes</w>
  <w f="160" flags="">you're</w>
  <w f="159" flags="">along</w>
  <w f="159" flags="">built</w>
@@ -803,7 +805,6 @@
  <w f="143" flags="">variety</w>
  <w f="143" flags="">view</w>
  <w f="142" flags="">German</w>
- <w f="142" flags="">I</w>
  <w f="142" flags="">London</w>
  <w f="142" flags="">West</w>
  <w f="142" flags="">actually</w>
@@ -1171,7 +1172,7 @@
  <w f="138" flags="">little</w>
  <w f="138" flags="">mass</w>
  <w f="138" flags="">matches</w>
- <w f="138" flags="">me</w>
+ <w f="138" flags="">meat</w>
  <w f="138" flags="">offer</w>
  <w f="138" flags="">parties</w>
  <w f="138" flags="">pay</w>
@@ -3351,7 +3352,6 @@
  <w f="124" flags="">maps</w>
  <w f="124" flags="">marks</w>
  <w f="124" flags="">measured</w>
- <w f="124" flags="">meat</w>
  <w f="124" flags="">memorial</w>
  <w f="124" flags="">met</w>
  <w f="124" flags="">mines</w>
@@ -11571,7 +11571,6 @@
  <w f="102" flags="">worms</w>
  <w f="102" flags="">wrestled</w>
  <w f="102" flags="">yeast</w>
- <w f="102" flags="">yes</w>
  <w f="101" flags="">Abdul</w>
  <w f="101" flags="">Aberdeen</w>
  <w f="101" flags="">Adolf</w>
@@ -11625,7 +11624,6 @@
  <w f="101" flags="">Lynn</w>
  <w f="101" flags="">Lyon</w>
  <w f="101" flags="abreviation">MCC</w>
- <w f="101" flags="">Mac</w>
  <w f="101" flags="">Macedonia</w>
  <w f="101" flags="">Malay</w>
  <w f="101" flags="">Martha</w>
@@ -13698,7 +13696,6 @@
  <w f="98" flags="">flu</w>
  <w f="98" flags="">fluorescent</w>
  <w f="98" flags="">flush</w>
- <w f="98">foe</w>
  <w f="98" flags="">footprint</w>
  <w f="98" flags="">forecasts</w>
  <w f="98" flags="">foreground</w>
@@ -15875,7 +15872,6 @@
  <w f="95" flags="">nephews</w>
  <w f="95" flags="">netted</w>
  <w f="95" flags="">numeric</w>
- <w f="95">nut</w>
  <w f="95" flags="">obey</w>
  <w f="95" flags="">obscured</w>
  <w f="95" flags="">obverse</w>
@@ -22053,7 +22049,6 @@
  <w f="88" flags="">wafer</w>
  <w f="88" flags="">warmed</w>
  <w f="88" flags="">wasps</w>
- <w f="88">wax</w>
  <w f="88" flags="">wellness</w>
  <w f="88" flags="">whistles</w>
  <w f="88" flags="">wills</w>
@@ -28032,7 +28027,6 @@
  <w f="82" flags="">gust</w>
  <w f="82" flags="">guts</w>
  <w f="82" flags="">gymnasiums</w>
- <w f="82">ha-ha</w>
  <w f="82">half-life</w>
  <w f="82" flags="">halides</w>
  <w f="82" flags="">hallucinogenic</w>
@@ -41924,7 +41918,6 @@
  <w f="71" flags="abreviation">CFCs</w>
  <w f="71" flags="abreviation">CLS</w>
  <w f="71" flags="abreviation">CMF</w>
- <w f="71" flags="abreviation">CNA</w>
  <w f="71" flags="abreviation">CTP</w>
  <w f="71" flags="">Cabral</w>
  <w f="71" flags="">Caligula</w>
@@ -59972,6 +59965,7 @@
  <w f="60" flags="">megacity</w>
  <w f="60" flags="">megalith</w>
  <w f="60" flags="">megalomania</w>
+ <w f="60">meme</w>
  <w f="60" flags="">memorial's</w>
  <w f="60" flags="">memorised</w>
  <w f="60" flags="">metafiction</w>
@@ -60718,7 +60712,6 @@
  <w f="59" flags="abreviation">IEE</w>
  <w f="59" flags="abreviation">IPSC</w>
  <w f="59" flags="abreviation">IRBM</w>
- <w f="59" flags="abreviation">ITIS</w>
  <w f="59" flags="">Ilkeston</w>
  <w f="59" flags="">InfoWorld</w>
  <w f="59" flags="">Infosys</w>
@@ -69231,7 +69224,6 @@
  <w f="54" flags="">Honshu</w>
  <w f="54" flags="">Hui's</w>
  <w f="54" flags="abreviation">IBSF</w>
- <w f="54" flags="abreviation">ITD</w>
  <w f="54" flags="">Ibrahim's</w>
  <w f="54" flags="">Imogene</w>
  <w f="54" flags="">Inmarsat</w>
@@ -114336,6 +114328,7 @@
  <w f="25" flags="">Chernobyl's</w>
  <w f="25" flags="">Chesapeake's</w>
  <w f="25" flags="">Cheviots</w>
+ <w f="25">Chewbacca</w>
  <w f="25" flags="">Chimer</w>
  <w f="25" flags="">Chippendale's</w>
  <w f="25" flags="">Chretien's</w>
@@ -146792,7 +146785,6 @@
  <w f="1" flags="">Irrelative</w>
  <w f="1" flags="">Irtysh's</w>
  <w f="1" flags="">Irv's</w>
- <w f="1">Isaac</w>
  <w f="1" flags="">Isadore's</w>
  <w f="1" flags="">Isidro's</w>
  <w f="1" flags="">Islamism's</w>
@@ -160937,7 +160929,6 @@
  <w f="1" flags="">runers</w>
  <w f="1" flags="">runlet</w>
  <w f="1" flags="">runoff's</w>
- <w f="1">runtime</w>
  <w f="1" flags="">rupture's</w>
  <w f="1" flags="">ruralists</w>
  <w f="1" flags="">ruralites</w>
diff --git a/dictionaries/es_wordlist.xml b/dictionaries/es_wordlist.xml
index d7f0ac3..cfaa7d9 100644
--- a/dictionaries/es_wordlist.xml
+++ b/dictionaries/es_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="es" description="Diccionario principal" date="1337171277" version="7">
+<wordlist locale="es" description="Español" date="1337655036" version="10">
  <w f="207" flags="">de</w>
  <w f="198" flags="">la</w>
  <w f="196" flags="">en</w>
diff --git a/dictionaries/fa_wordlist.xml b/dictionaries/fa_wordlist.xml
index a0e417a..ba7c4c0 100644
--- a/dictionaries/fa_wordlist.xml
+++ b/dictionaries/fa_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="fa" description="فرهنگ‌ لغت اصلی" date="1337171515" version="7">
+<wordlist locale="fa" description="\u067E\u0627\u0631\u0633\u06CC\u000A" date="1337655087" version="10">
  <w f="168" flags="">و</w>
  <w f="167" flags="">در</w>
  <w f="163" flags="">به</w>
diff --git a/dictionaries/fr_wordlist.xml b/dictionaries/fr_wordlist.xml
index cb047a4..95b8950 100644
--- a/dictionaries/fr_wordlist.xml
+++ b/dictionaries/fr_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="fr" description="Dictionnaire principal" date="1337330537" version="8" options="french_ligature_processing">
+<wordlist locale="fr" description="Français" date="1337846842" version="11" options="french_ligature_processing">
  <w f="209" flags="">de</w>
  <w f="200" flags="">la</w>
  <w f="197" flags="">et</w>
@@ -19,7 +19,6 @@
  <w f="178" flags="">a</w>
  <w f="178" flags="">il</w>
  <w f="178" flags="">que</w>
- <w f="177" flags="">sur</w>
  <w f="176" flags="">son</w>
  <w f="175" flags="">avec</w>
  <w f="175" flags="">plus</w>
@@ -3712,7 +3711,6 @@
  <w f="110" flags="">mécanisme</w>
  <w f="110" flags="">médiévale</w>
  <w f="110" flags="">navale</w>
- <w f="110" flags="">no</w>
  <w f="110" flags="">observé</w>
  <w f="110" flags="">ondes</w>
  <w f="110" flags="">organisme</w>
@@ -19939,7 +19937,6 @@
  <w f="82" flags="">raquette</w>
  <w f="82" flags="">rattachent</w>
  <w f="82" flags="">rattrape</w>
- <w f="82" flags="">re</w>
  <w f="82" flags="">rebord</w>
  <w f="82" flags="">recensé</w>
  <w f="82" flags="">recherchant</w>
@@ -26818,7 +26815,6 @@
  <w f="76" flags="">testostérone</w>
  <w f="76" flags="">testées</w>
  <w f="76" flags="">thym</w>
- <w f="76" flags="">thébaine</w>
  <w f="76" flags="">tienne</w>
  <w f="76" flags="">tilleuls</w>
  <w f="76" flags="">timbales</w>
@@ -28173,7 +28169,6 @@
  <w f="75" flags="">titulature</w>
  <w f="75" flags="">tolérée</w>
  <w f="75" flags="">topologiques</w>
- <w f="75" flags="">torero</w>
  <w f="75" flags="">tourbillons</w>
  <w f="75" flags="">toxicomanie</w>
  <w f="75" flags="">tract</w>
@@ -28733,8 +28728,6 @@
  <w f="74" flags="">d'Auge</w>
  <w f="74" flags="">d'Aulnay</w>
  <w f="74" flags="">d'Eddie</w>
- <w f="74" flags="">d'Edouard</w>
- <w f="74" flags="">d'Elisabeth</w>
  <w f="74" flags="">d'Hannibal</w>
  <w f="74" flags="">d'Harvard</w>
  <w f="74" flags="">d'Hervé</w>
@@ -34518,7 +34511,6 @@
  <w f="70" flags="">bénitier</w>
  <w f="70" flags="">caennais</w>
  <w f="70" flags="">calligraphe</w>
- <w f="70" flags="">camera</w>
  <w f="70" flags="">caméo</w>
  <w f="70" flags="">cancérigène</w>
  <w f="70" flags="">canevas</w>
@@ -35627,7 +35619,6 @@
  <w f="70" flags="">togolais</w>
  <w f="70" flags="">tolérés</w>
  <w f="70" flags="">torches</w>
- <w f="70" flags="">toreros</w>
  <w f="70" flags="">torts</w>
  <w f="70" flags="">torturée</w>
  <w f="70" flags="">toulousains</w>
@@ -37985,7 +37976,6 @@
  <w f="68" flags="">d'Aubigny</w>
  <w f="68" flags="">d'Aure</w>
  <w f="68" flags="">d'Australie-Méridionale</w>
- <w f="68" flags="">d'Emile</w>
  <w f="68" flags="">d'Entrecasteaux</w>
  <w f="68" flags="">d'Eudes</w>
  <w f="68" flags="">d'Euripide</w>
@@ -38538,7 +38528,6 @@
  <w f="68" flags="">mourante</w>
  <w f="68" flags="">mousquets</w>
  <w f="68" flags="">mouvances</w>
- <w f="68" flags="abreviation">mu</w>
  <w f="68" flags="">multiplicatif</w>
  <w f="68" flags="">multiplications</w>
  <w f="68" flags="">munir</w>
@@ -39697,7 +39686,6 @@
  <w f="67" flags="">d'Augusta</w>
  <w f="67" flags="abreviation">d'EADS</w>
  <w f="67" flags="">d'Entremont</w>
- <w f="67" flags="">d'Etienne</w>
  <w f="67" flags="">d'Eylau</w>
  <w f="67" flags="">d'Halatte</w>
  <w f="67" flags="">d'Henriette</w>
@@ -42265,7 +42253,6 @@
  <w f="66" flags="">négationniste</w>
  <w f="66" flags="">négligées</w>
  <w f="66" flags="">néo-roman</w>
- <w f="66" flags="">nô</w>
  <w f="66" flags="">oblasts</w>
  <w f="66" flags="">oblongues</w>
  <w f="66" flags="">obscurité</w>
@@ -44563,7 +44550,6 @@
  <w f="65" flags="">superpuissance</w>
  <w f="65" flags="">supplicié</w>
  <w f="65" flags="">supportable</w>
- <w f="65" flags="">sure</w>
  <w f="65" flags="">surendettement</w>
  <w f="65" flags="">surplombé</w>
  <w f="65" flags="">sursauts</w>
@@ -45465,7 +45451,6 @@
  <w f="64" flags="">d'Aubenas</w>
  <w f="64" flags="">d'Augusto</w>
  <w f="64" flags="">d'Ayacucho</w>
- <w f="64" flags="">d'Edith</w>
  <w f="64" flags="">d'Enrico</w>
  <w f="64" flags="">d'Estienne</w>
  <w f="64" flags="">d'Estrémadure</w>
@@ -47280,7 +47265,6 @@
  <w f="63" flags="">calebasse</w>
  <w f="63" flags="">calembours</w>
  <w f="63" flags="">calligraphies</w>
- <w f="63" flags="">cameraman</w>
  <w f="63" flags="">camouflé</w>
  <w f="63" flags="">camphre</w>
  <w f="63" flags="">campé</w>
@@ -48129,7 +48113,6 @@
  <w f="63" flags="">natura</w>
  <w f="63" flags="">naïvement</w>
  <w f="63" flags="">naïves</w>
- <w f="63" flags="">negro</w>
  <w f="63" flags="">neigeuse</w>
  <w f="63" flags="">nestoriens</w>
  <w f="63" flags="">network</w>
@@ -52422,7 +52405,6 @@
  <w f="61" flags="">lymphe</w>
  <w f="61" flags="">lyrics</w>
  <w f="61" flags="">länder</w>
- <w f="61" flags="">lès</w>
  <w f="61" flags="">m'appelle</w>
  <w f="61" flags="">madriers</w>
  <w f="61" flags="">mafieuses</w>
@@ -53959,7 +53941,6 @@
  <w f="60" flags="">d'Axel</w>
  <w f="60" flags="">d'Eastwood</w>
  <w f="60" flags="">d'Eichsfeld</w>
- <w f="60" flags="">d'Elie</w>
  <w f="60" flags="">d'Eliza</w>
  <w f="60" flags="">d'Ellesmere</w>
  <w f="60" flags="">d'Encausse</w>
@@ -53968,7 +53949,6 @@
  <w f="60" flags="">d'Essling</w>
  <w f="60" flags="">d'Eton</w>
  <w f="60" flags="">d'Etterbeek</w>
- <w f="60" flags="">d'Eugene</w>
  <w f="60" flags="">d'Eugénie</w>
  <w f="60" flags="">d'Eumène</w>
  <w f="60" flags="">d'Hannah</w>
@@ -61149,7 +61129,6 @@
  <w f="57" flags="">d'amples</w>
  <w f="57" flags="">d'aménorrhée</w>
  <w f="57" flags="">d'anches</w>
- <w f="57" flags="">d'aout</w>
  <w f="57" flags="">d'appellations</w>
  <w f="57" flags="">d'approvisionnements</w>
  <w f="57" flags="">d'aqueduc</w>
@@ -64547,7 +64526,6 @@
  <w f="56" flags="">océanographe</w>
  <w f="56" flags="">offensant</w>
  <w f="56" flags="">offenser</w>
- <w f="56" flags="">oil</w>
  <w f="56" flags="">oisive</w>
  <w f="56" flags="">omises</w>
  <w f="56" flags="">ontologies</w>
@@ -66357,7 +66335,6 @@
  <w f="55" flags="">consultera</w>
  <w f="55" flags="">consulteur</w>
  <w f="55" flags="">contemplatifs</w>
- <w f="55" flags="">contigües</w>
  <w f="55" flags="">contractualisation</w>
  <w f="55" flags="">contrastait</w>
  <w f="55" flags="">contre-expertise</w>
@@ -67462,7 +67439,6 @@
  <w f="55" flags="">narcotique</w>
  <w f="55" flags="">nauplius</w>
  <w f="55" flags="">nauruane</w>
- <w f="55" flags="">neo</w>
  <w f="55" flags="">neurales</w>
  <w f="55" flags="">neurophysiologie</w>
  <w f="55" flags="">new-wave</w>
@@ -69038,7 +69014,6 @@
  <w f="54" flags="">brucellose</w>
  <w f="54" flags="">brugeoise</w>
  <w f="54" flags="">bruler</w>
- <w f="54" flags="">brêche</w>
  <w f="54" flags="">brûlantes</w>
  <w f="54" flags="">bugle</w>
  <w f="54" flags="">buissonnant</w>
@@ -69615,7 +69590,6 @@
  <w f="54" flags="">gazouillis</w>
  <w f="54" flags="">gestuelles</w>
  <w f="54" flags="">ghazal</w>
- <w f="54" flags="">git</w>
  <w f="54" flags="">glaire</w>
  <w f="54" flags="">glandulaires</w>
  <w f="54" flags="">glaçon</w>
@@ -69657,7 +69631,6 @@
  <w f="54" flags="">hellénisé</w>
  <w f="54" flags="">hellénisés</w>
  <w f="54" flags="">herbus</w>
- <w f="54" flags="">hero</w>
  <w f="54" flags="">hippocampes</w>
  <w f="54" flags="">hivernants</w>
  <w f="54" flags="">hominidé</w>
@@ -70300,7 +70273,6 @@
  <w f="54" flags="">raviolis</w>
  <w f="54" flags="">rebaptisant</w>
  <w f="54" flags="">rebellés</w>
- <w f="54" flags="">rebus</w>
  <w f="54" flags="">rebuté</w>
  <w f="54" flags="">recadrage</w>
  <w f="54" flags="">recomposé</w>
@@ -76005,7 +75977,6 @@
  <w f="52" flags="">nonante</w>
  <w f="52" flags="">noroît</w>
  <w f="52" flags="">notez</w>
- <w f="52" flags="">nucleus</w>
  <w f="52" flags="">nuevo</w>
  <w f="52" flags="">nuirait</w>
  <w f="52" flags="">numérotage</w>
@@ -78677,7 +78648,6 @@
  <w f="51" flags="">sadducéens</w>
  <w f="51" flags="">sagittal</w>
  <w f="51" flags="">sahélien</w>
- <w f="51" flags="">sai</w>
  <w f="51" flags="">sala</w>
  <w f="51" flags="">saladier</w>
  <w f="51" flags="">salant</w>
@@ -81211,7 +81181,6 @@
  <w f="50" flags="">suranné</w>
  <w f="50" flags="">surchauffé</w>
  <w f="50" flags="">surpuissants</w>
- <w f="50" flags="">surs</w>
  <w f="50" flags="">surveilla</w>
  <w f="50" flags="">survivrait</w>
  <w f="50" flags="">surévalué</w>
@@ -81231,7 +81200,6 @@
  <w f="50" flags="">sûtras</w>
  <w f="50" flags="">tabula</w>
  <w f="50" flags="">taffetas</w>
- <w f="50" flags="">taifa</w>
  <w f="50" flags="">tajine</w>
  <w f="50" flags="">tamia</w>
  <w f="50" flags="">tamisage</w>
@@ -85332,7 +85300,6 @@
  <w f="48" flags="">cornéen</w>
  <w f="48" flags="abreviation">corp</w>
  <w f="48" flags="">corroborées</w>
- <w f="48" flags="">cortes</w>
  <w f="48" flags="">corticaux</w>
  <w f="48" flags="">costauds</w>
  <w f="48" flags="">coter</w>
@@ -87949,7 +87916,6 @@
  <w f="47" flags="">bâillon</w>
  <w f="47" flags="">bélemnites</w>
  <w f="47" flags="">bénéficieraient</w>
- <w f="47" flags="">bété</w>
  <w f="47" flags="">cachexie</w>
  <w f="47" flags="">cachou</w>
  <w f="47" flags="">cagou</w>
@@ -89058,7 +89024,6 @@
  <w f="47" flags="">pragmatiste</w>
  <w f="47" flags="">praia</w>
  <w f="47" flags="">praline</w>
- <w f="47" flags="">pre</w>
  <w f="47" flags="">presbytie</w>
  <w f="47" flags="">presse-papier</w>
  <w f="47" flags="">pressenties</w>
@@ -92198,7 +92163,6 @@
  <w f="46" flags="">taxations</w>
  <w f="46" flags="">tchetniks</w>
  <w f="46" flags="">teinter</w>
- <w f="46" flags="">telecom</w>
  <w f="46" flags="">temporaux</w>
  <w f="46" flags="">tenais</w>
  <w f="46" flags="">tends</w>
@@ -94806,7 +94770,6 @@
  <w f="45" flags="">revînt</w>
  <w f="45" flags="">rhodamine</w>
  <w f="45" flags="">rhumatismale</w>
- <w f="45" flags="">rhô</w>
  <w f="45" flags="">rias</w>
  <w f="45" flags="">riboflavine</w>
  <w f="45" flags="">rivalisèrent</w>
@@ -96443,7 +96406,6 @@
  <w f="44" flags="">corrosives</w>
  <w f="44" flags="">corrélatif</w>
  <w f="44" flags="">corser</w>
- <w f="44" flags="">corte</w>
  <w f="44" flags="">cosse</w>
  <w f="44" flags="">cotices</w>
  <w f="44" flags="">coudrier</w>
@@ -103165,7 +103127,6 @@
  <w f="42" flags="">séjourneront</w>
  <w f="42" flags="">sémioticien</w>
  <w f="42" flags="">tabulation</w>
- <w f="42" flags="">taiga</w>
  <w f="42" flags="">taillanderie</w>
  <w f="42" flags="">talonnant</w>
  <w f="42" flags="">talwegs</w>
@@ -104521,7 +104482,6 @@
  <w f="41" flags="">d'allant</w>
  <w f="41" flags="">d'allée</w>
  <w f="41" flags="">d'amant</w>
- <w f="41" flags="">d'ambigüité</w>
  <w f="41" flags="">d'analphabètes</w>
  <w f="41" flags="">d'anhydride</w>
  <w f="41" flags="">d'annonceurs</w>
@@ -104692,7 +104652,6 @@
  <w f="41" flags="">débitées</w>
  <w f="41" flags="">déblayage</w>
  <w f="41" flags="">déblayée</w>
- <w f="41" flags="">débout</w>
  <w f="41" flags="">débouta</w>
  <w f="41" flags="">débridées</w>
  <w f="41" flags="">décadaire</w>
@@ -105304,7 +105263,6 @@
  <w f="41" flags="">logisticien</w>
  <w f="41" flags="">loi-programme</w>
  <w f="41" flags="">longes</w>
- <w f="41" flags="">lorsqu'a</w>
  <w f="41" flags="">lotit</w>
  <w f="41" flags="">loukoums</w>
  <w f="41" flags="">loupé</w>
@@ -105891,7 +105849,6 @@
  <w f="41" flags="">salubres</w>
  <w f="41" flags="">sami</w>
  <w f="41" flags="">samoyèdes</w>
- <w f="41" flags="">sante</w>
  <w f="41" flags="">sapant</w>
  <w f="41" flags="">sapé</w>
  <w f="41" flags="">sardanes</w>
@@ -105973,7 +105930,6 @@
  <w f="41" flags="">stathoudérat</w>
  <w f="41" flags="">statuera</w>
  <w f="41" flags="">statues-menhirs</w>
- <w f="41" flags="">ste</w>
  <w f="41" flags="">stigmatique</w>
  <w f="41" flags="">stramoine</w>
  <w f="41" flags="">stratifications</w>
@@ -107843,7 +107799,6 @@
  <w f="40" flags="">gazée</w>
  <w f="40" flags="">gel-dégel</w>
  <w f="40" flags="">gemmules</w>
- <w f="40" flags="">geo</w>
  <w f="40" flags="">germinative</w>
  <w f="40" flags="">gesticulant</w>
  <w f="40" flags="">gift</w>
@@ -108670,7 +108625,6 @@
  <w f="40" flags="">ravalés</w>
  <w f="40" flags="">ravelin</w>
  <w f="40" flags="">ravies</w>
- <w f="40" flags="">rea</w>
  <w f="40" flags="">rebroussa</w>
  <w f="40" flags="">recalcule</w>
  <w f="40" flags="">recalculé</w>
@@ -108730,7 +108684,6 @@
  <w f="40" flags="">reverrons</w>
  <w f="40" flags="">rhinolophes</w>
  <w f="40" flags="">rhinoplastie</w>
- <w f="40" flags="">rho</w>
  <w f="40" flags="">rhomboïde</w>
  <w f="40" flags="">rhéologiques</w>
  <w f="40" flags="">ricercare</w>
@@ -110564,7 +110517,6 @@
  <w f="39" flags="">charismes</w>
  <w f="39" flags="">charolaises</w>
  <w f="39" flags="">chat-qui-pelote</w>
- <w f="39" flags="">chatelain</w>
  <w f="39" flags="">chemin-de-fer</w>
  <w f="39" flags="">chemisé</w>
  <w f="39" flags="">chenu</w>
@@ -115609,7 +115561,6 @@
  <w f="37" flags="">fatiguait</w>
  <w f="37" flags="">faussetés</w>
  <w f="37" flags="">fedayin</w>
- <w f="37" flags="">fee</w>
  <w f="37" flags="">fenestration</w>
  <w f="37" flags="">fennecs</w>
  <w f="37" flags="">fermentescible</w>
@@ -115836,7 +115787,6 @@
  <w f="37" flags="">immunise</w>
  <w f="37" flags="">imméritée</w>
  <w f="37" flags="">imperfectifs</w>
- <w f="37" flags="">imperial</w>
  <w f="37" flags="">impondérable</w>
  <w f="37" flags="">impressionnable</w>
  <w f="37" flags="">imprimèrent</w>
@@ -117309,7 +117259,6 @@
  <w f="37" flags="">turbotrain</w>
  <w f="37" flags="">turf</w>
  <w f="37" flags="">turonien</w>
- <w f="37" flags="abreviation">tél</w>
  <w f="37" flags="">télé-vote</w>
  <w f="37" flags="">témoigneraient</w>
  <w f="37" flags="">térébrants</w>
@@ -117797,7 +117746,6 @@
  <w f="36" flags="">calmèrent</w>
  <w f="36" flags="">calomniateur</w>
  <w f="36" flags="">calomniés</w>
- <w f="36" flags="">cameras</w>
  <w f="36" flags="">campées</w>
  <w f="36" flags="">candidoses</w>
  <w f="36" flags="">cangue</w>
@@ -118355,7 +118303,6 @@
  <w f="36" flags="">hydrolysables</w>
  <w f="36" flags="">hypertrophiques</w>
  <w f="36" flags="">hématologue</w>
- <w f="36" flags="">héro</w>
  <w f="36" flags="">hétérocycliques</w>
  <w f="36" flags="">iconophiles</w>
  <w f="36" flags="">ignominie</w>
@@ -122917,7 +122864,6 @@
  <w f="35" flags="">terrifiées</w>
  <w f="35" flags="">terrorisées</w>
  <w f="35" flags="">testables</w>
- <w f="35" flags="">tetra</w>
  <w f="35" flags="">teutonne</w>
  <w f="35" flags="">texturés</w>
  <w f="35" flags="">thermolabiles</w>
@@ -123531,7 +123477,6 @@
  <w f="34" flags="">batcave</w>
  <w f="34" flags="">baud</w>
  <w f="34" flags="">beaune</w>
- <w f="34" flags="">beluga</w>
  <w f="34" flags="">bemba</w>
  <w f="34" flags="">bernés</w>
  <w f="34" flags="">berri</w>
@@ -124678,7 +124623,6 @@
  <w f="34" flags="">niveau-là</w>
  <w f="34" flags="">niveleuse</w>
  <w f="34" flags="">nivernaises</w>
- <w f="34" flags="">noel</w>
  <w f="34" flags="">noir-blanc</w>
  <w f="34" flags="">noises</w>
  <w f="34" flags="">non-abonnés</w>
@@ -125321,7 +125265,6 @@
  <w f="34" flags="">turbine-alternateur</w>
  <w f="34" flags="">turbiner</w>
  <w f="34" flags="">typer</w>
- <w f="34" flags="">tâchée</w>
  <w f="34" flags="">télécopies</w>
  <w f="34" flags="">télégraphia</w>
  <w f="34" flags="">téléguidage</w>
@@ -133237,7 +133180,6 @@
  <w f="31" flags="">taquiné</w>
  <w f="31" flags="">tarpon</w>
  <w f="31" flags="">tassant</w>
- <w f="31" flags="">tate</w>
  <w f="31" flags="">taxidermistes</w>
  <w f="31" flags="">taxèrent</w>
  <w f="31" flags="">temporisations</w>
@@ -135580,7 +135522,6 @@
  <w f="30" flags="">noyautés</w>
  <w f="30" flags="">nu-propriétaire</w>
  <w f="30" flags="">nucléarité</w>
- <w f="30" flags="">numérus</w>
  <w f="30" flags="">néantisation</w>
  <w f="30" flags="">nécroser</w>
  <w f="30" flags="">nécrosées</w>
@@ -137266,7 +137207,6 @@
  <w f="28" flags="">brasserie-restaurant</w>
  <w f="28" flags="">brassins</w>
  <w f="28" flags="">bredouiller</w>
- <w f="28" flags="">briquèterie</w>
  <w f="28" flags="">brocardent</w>
  <w f="28" flags="">brodequin</w>
  <w f="28" flags="">broncho-alvéolaire</w>
@@ -137590,7 +137530,6 @@
  <w f="28" flags="">d'alphabétisme</w>
  <w f="28" flags="">d'altercations</w>
  <w f="28" flags="">d'amabilité</w>
- <w f="28" flags="">d'ambigüités</w>
  <w f="28" flags="">d'amuseur</w>
  <w f="28" flags="">d'amuseurs</w>
  <w f="28" flags="">d'aménageur</w>
@@ -141365,7 +141304,6 @@
  <w f="27" flags="">contenterai</w>
  <w f="27" flags="">contentées</w>
  <w f="27" flags="">contesterait</w>
- <w f="27" flags="">contigüité</w>
  <w f="27" flags="">contingentées</w>
  <w f="27" flags="">contingentés</w>
  <w f="27" flags="">continuatrices</w>
@@ -141447,7 +141385,6 @@
  <w f="27" flags="">cystectomie</w>
  <w f="27" flags="">câblots</w>
  <w f="27" flags="">cèderait</w>
- <w f="27" flags="">cé</w>
  <w f="27" flags="">cédants</w>
  <w f="27" flags="">cémenté</w>
  <w f="27" flags="">cérémonieuse</w>
@@ -143260,7 +143197,6 @@
  <w f="27" flags="">ogresses</w>
  <w f="27" flags="">oka</w>
  <w f="27" flags="">okoumé</w>
- <w f="27" flags="">ole</w>
  <w f="27" flags="">olé</w>
  <w f="27" flags="">ombellules</w>
  <w f="27" flags="">ombragent</w>
@@ -145449,7 +145385,6 @@
  <w f="25" flags="">beefsteak</w>
  <w f="25" flags="">bel-étage</w>
  <w f="25" flags="">benn</w>
- <w f="25" flags="">benoite</w>
  <w f="25" flags="">benoîtement</w>
  <w f="25" flags="">berruyer</w>
  <w f="25" flags="">berthoud</w>
@@ -145701,7 +145636,6 @@
  <w f="25" flags="">charmées</w>
  <w f="25" flags="">chasse-bombardement</w>
  <w f="25" flags="">chasse-goupille</w>
- <w f="25" flags="">chatelet</w>
  <w f="25" flags="">chatouillement</w>
  <w f="25" flags="">chauffera</w>
  <w f="25" flags="">chaulé</w>
@@ -148557,7 +148491,6 @@
  <w f="25" flags="">redonnerait</w>
  <w f="25" flags="">redressèrent</w>
  <w f="25" flags="">redémarrés</w>
- <w f="25" flags="">ree</w>
  <w f="25" flags="">reformula</w>
  <w f="25" flags="">refoulait</w>
  <w f="25" flags="">regagneraient</w>
@@ -149123,7 +149056,6 @@
  <w f="25" flags="">suprasegmentales</w>
  <w f="25" flags="">sur-interprétation</w>
  <w f="25" flags="">sur-revenu</w>
- <w f="25" flags="">suraigüe</w>
  <w f="25" flags="">surcapacités</w>
  <w f="25" flags="">surcapitalisation</w>
  <w f="25" flags="">surchargent</w>
@@ -150734,7 +150666,6 @@
  <w f="23" flags="">cargues</w>
  <w f="23" flags="">cariste</w>
  <w f="23" flags="">cariée</w>
- <w f="23" flags="">carmine</w>
  <w f="23" flags="">carmins</w>
  <w f="23" flags="">carolus</w>
  <w f="23" flags="">carrousel-salon</w>
@@ -150812,7 +150743,6 @@
  <w f="23" flags="">chemisée</w>
  <w f="23" flags="">chercheras</w>
  <w f="23" flags="">cherchiez</w>
- <w f="23" flags="">cherif</w>
  <w f="23" flags="">cheval-jupon</w>
  <w f="23" flags="">chevalet-cordier</w>
  <w f="23" flags="">chevauchera</w>
@@ -158794,7 +158724,6 @@
  <w f="21" flags="">glabelle</w>
  <w f="21" flags="">glaceries</w>
  <w f="21" flags="">glaciaires-interglaciaires</w>
- <w f="21" flags="">glebe</w>
  <w f="21" flags="">glisseront</w>
  <w f="21" flags="">glissé-déposé</w>
  <w f="21" flags="">glockenspiels</w>
@@ -162051,7 +161980,6 @@
  <w f="21" flags="">sitars</w>
  <w f="21" flags="">situations-problèmes</w>
  <w f="21" flags="">situez</w>
- <w f="21" flags="">situè</w>
  <w f="21" flags="">siègeraient</w>
  <w f="21" flags="">skelter</w>
  <w f="21" flags="">slalomer</w>
@@ -169393,7 +169321,6 @@
  <w f="18" flags="">non-adaptation</w>
  <w f="18" flags="">non-adjacents</w>
  <w f="18" flags="">non-affiliées</w>
- <w f="18" flags="">non-ambigüe</w>
  <w f="18" flags="">non-anglicans</w>
  <w f="18" flags="">non-anthropomorphique</w>
  <w f="18" flags="">non-artistiques</w>
@@ -172080,7 +172007,6 @@
  <w f="18" flags="">teindra</w>
  <w f="18" flags="">teins</w>
  <w f="18" flags="">teintaient</w>
- <w f="18" flags="">telemark</w>
  <w f="18" flags="">tempéré-froid</w>
  <w f="18" flags="">tenaillaient</w>
  <w f="18" flags="">tentent-ils</w>
@@ -172296,7 +172222,6 @@
  <w f="18" flags="">tympanal</w>
  <w f="18" flags="">tyrosine-kinases</w>
  <w f="18" flags="">tâchez</w>
- <w f="18" flags="">tâchées</w>
  <w f="18" flags="">télescopages</w>
  <w f="18" flags="">téléchargera</w>
  <w f="18" flags="">télégraphiés</w>
@@ -175263,7 +175188,6 @@
  <w f="15" flags="">bedon</w>
  <w f="15" flags="">beira</w>
  <w f="15" flags="">bel-esprit</w>
- <w f="15" flags="">benin</w>
  <w f="15" flags="">berat</w>
  <w f="15" flags="">bercements</w>
  <w f="15" flags="">bergamotier</w>
@@ -182098,7 +182022,6 @@
  <w f="15" flags="">navre</w>
  <w f="15" flags="">nazaréennes</w>
  <w f="15" flags="">ne-me-touchez-pas</w>
- <w f="15" flags="">nene</w>
  <w f="15" flags="">nervations</w>
  <w f="15" flags="">nervi</w>
  <w f="15" flags="">net-art</w>
@@ -182179,7 +182102,6 @@
  <w f="15" flags="">non-certifiées</w>
  <w f="15" flags="">non-chemin</w>
  <w f="15" flags="">non-choix</w>
- <w f="15" flags="">non-cibles</w>
  <w f="15" flags="">non-circulaire</w>
  <w f="15" flags="">non-circulaires</w>
  <w f="15" flags="">non-circulation</w>
@@ -182540,7 +182462,6 @@
  <w f="15" flags="">nuança</w>
  <w f="15" flags="">nucléoprotéines</w>
  <w f="15" flags="">nullipare</w>
- <w f="15" flags="">nument</w>
  <w f="15" flags="">numéro-bilan</w>
  <w f="15" flags="">numérotaient</w>
  <w f="15" flags="">nymphaux</w>
@@ -182721,7 +182642,6 @@
  <w f="15" flags="">ossifications</w>
  <w f="15" flags="">ostioles</w>
  <w f="15" flags="">ostrogothes</w>
- <w f="15" flags="">ota</w>
  <w f="15" flags="">othello</w>
  <w f="15" flags="">oublieraient</w>
  <w f="15" flags="">oublieuses</w>
@@ -185679,7 +185599,6 @@
  <w f="15" flags="">styler</w>
  <w f="15" flags="">stylographes</w>
  <w f="15" flags="">styptiques</w>
- <w f="15" flags="">sté</w>
  <w f="15" flags="">sténogramme</w>
  <w f="15" flags="">sténographié</w>
  <w f="15" flags="">sténotypiste</w>
@@ -185689,8 +185608,6 @@
  <w f="15" flags="">stéthoscopes</w>
  <w f="15" flags="">suait</w>
  <w f="15" flags="">subaigu</w>
- <w f="15" flags="">subaigüe</w>
- <w f="15" flags="">subaigües</w>
  <w f="15" flags="">subcarpatiques</w>
  <w f="15" flags="">subiras</w>
  <w f="15" flags="">subirons</w>
@@ -186010,7 +185927,6 @@
  <w f="15" flags="">terrons</w>
  <w f="15" flags="">terrorisante</w>
  <w f="15" flags="">testacelles</w>
- <w f="15" flags="">teton</w>
  <w f="15" flags="">texturisation</w>
  <w f="15" flags="">thermie</w>
  <w f="15" flags="">thermomagnétique</w>
@@ -186279,7 +186195,6 @@
  <w f="15" flags="">téléguide</w>
  <w f="15" flags="">téléphonée</w>
  <w f="15" flags="">télérobotique</w>
- <w f="15" flags="">télévises</w>
  <w f="15" flags="">témoignera-t-il</w>
  <w f="15" flags="">témoignées</w>
  <w f="15" flags="">ténorino</w>
@@ -187546,7 +187461,6 @@
  <w f="10" flags="">bousille</w>
  <w f="10" flags="">boutefas</w>
  <w f="10" flags="">boutet</w>
- <w f="10" flags="">boué</w>
  <w f="10" flags="">box-set</w>
  <w f="10" flags="">boy-girl</w>
  <w f="10" flags="">boy-love</w>
@@ -189008,7 +188922,6 @@
  <w f="10" flags="">nové</w>
  <w f="10" flags="">novés</w>
  <w f="10" flags="">nutrition-santé</w>
- <w f="10" flags="">nué</w>
  <w f="10" flags="">nénés</w>
  <w f="10" flags="">néo-grenadin</w>
  <w f="10" flags="">néo-indien</w>
@@ -190541,7 +190454,6 @@
  <w f="1" flags="">bonder</w>
  <w f="1" flags="">bondons</w>
  <w f="1" flags="">boniche</w>
- <w f="1" flags="">bonte</w>
  <w f="1" flags="">bony</w>
  <w f="1" flags="">bordeaux-côtes-de-francs</w>
  <w f="1" flags="">bordet</w>
@@ -190929,7 +190841,6 @@
  <w f="1" flags="">gaube</w>
  <w f="1" flags="">gava</w>
  <w f="1" flags="">gaîtés</w>
- <w f="1" flags="">gaï</w>
  <w f="1" flags="">gelas</w>
  <w f="1" flags="">geoffrin</w>
  <w f="1" flags="">geordie</w>
@@ -191986,7 +191897,6 @@
  <w f="0" flags="e">nègre</w>
  <w f="0" flags="n">nécrophilie</w>
  <w f="0" flags="e">négritude</w>
- <w f="0" flags="e">négro</w>
  <w f="0" flags="e">néonazi</w>
  <w f="0" flags="n">obscène</w>
  <w f="0" flags="n">obsédé</w>
@@ -192034,6 +191944,7 @@
  <w f="0" flags="n">quéquette</w>
  <w f="0" flags="e">racaille</w>
  <w f="0" flags="e">raton</w>
+ <w f="0" flags="">re</w>
  <w f="0" flags="n">relation</w>
  <w f="0" flags="e">rital</w>
  <w f="0" flags="e">ritals</w>
diff --git a/dictionaries/hr_wordlist.xml b/dictionaries/hr_wordlist.xml
index fe79d59..639feef 100644
--- a/dictionaries/hr_wordlist.xml
+++ b/dictionaries/hr_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="hr" description="Glavni rječnik" date="1337171563" version="7">
+<wordlist locale="hr" description="Hrvatski" date="1337655174" version="10">
  <w f="165" flags="">je</w>
  <w f="164" flags="">i</w>
  <w f="162" flags="">u</w>
diff --git a/dictionaries/it_wordlist.xml b/dictionaries/it_wordlist.xml
index dfb9fca..33f475e 100644
--- a/dictionaries/it_wordlist.xml
+++ b/dictionaries/it_wordlist.xml
@@ -1,4 +1,4 @@
-<wordlist locale="it" description="Dizionario principale" date="1337171609" version="7">
+<wordlist locale="it" description="Italiano" date="1337655212" version="10">
  <w f="199" flags="">di</w>
  <w f="193" flags="">e</w>
  <w f="189" flags="">il</w>
diff --git a/dictionaries/pt_wordlist.xml b/dictionaries/pt_BR_wordlist.xml
similarity index 99%
rename from dictionaries/pt_wordlist.xml
rename to dictionaries/pt_BR_wordlist.xml
index 4129797..cae7f12 100644
--- a/dictionaries/pt_wordlist.xml
+++ b/dictionaries/pt_BR_wordlist.xml
@@ -1,4 +1,4 @@
-nil
+<wordlist locale="pt_BR" description="Portugês (Brasil)" date="1337655248" version="10">
  <w f="193" flags="">de</w>
  <w f="183" flags="">a</w>
  <w f="183" flags="">e</w>
diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index 393bc18..06d852b 100644
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -30,7 +30,8 @@
             <meta-data android:name="android.view.textservice.scs" android:resource="@xml/spellchecker" />
         </service>
 
-        <activity android:name="SettingsActivity" android:label="@string/english_ime_settings">
+        <activity android:name="SettingsActivity" android:label="@string/english_ime_settings"
+                  android:uiOptions="splitActionBarWhenNarrow">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
             </intent-filter>
diff --git a/java/proguard.flags b/java/proguard.flags
index fd73e12..34e23aa 100644
--- a/java/proguard.flags
+++ b/java/proguard.flags
@@ -7,6 +7,10 @@
   *;
 }
 
+-keep class com.android.inputmethod.keyboard.ProximityInfo {
+  <init>(com.android.inputmethod.keyboard.ProximityInfo);
+}
+
 -keep class com.android.inputmethod.latin.Suggest {
   <init>(...);
   com.android.inputmethod.latin.SuggestedWords getSuggestions(...);
diff --git a/java/res/raw/main_de.dict b/java/res/raw/main_de.dict
index 68b0dce..1a7b305 100644
--- a/java/res/raw/main_de.dict
+++ b/java/res/raw/main_de.dict
Binary files differ
diff --git a/java/res/raw/main_en.dict b/java/res/raw/main_en.dict
index f544da6..14865a2 100644
--- a/java/res/raw/main_en.dict
+++ b/java/res/raw/main_en.dict
Binary files differ
diff --git a/java/res/raw/main_es.dict b/java/res/raw/main_es.dict
index 8321c70..71370aa 100644
--- a/java/res/raw/main_es.dict
+++ b/java/res/raw/main_es.dict
Binary files differ
diff --git a/java/res/raw/main_fr.dict b/java/res/raw/main_fr.dict
index 084ef7c..17920f0 100644
--- a/java/res/raw/main_fr.dict
+++ b/java/res/raw/main_fr.dict
Binary files differ
diff --git a/java/res/raw/main_it.dict b/java/res/raw/main_it.dict
index ed260f2..00bbdbe 100644
--- a/java/res/raw/main_it.dict
+++ b/java/res/raw/main_it.dict
Binary files differ
diff --git a/java/res/values-en/whitelist.xml b/java/res/values-en/whitelist.xml
index 29a828c..0a1646f 100644
--- a/java/res/values-en/whitelist.xml
+++ b/java/res/values-en/whitelist.xml
@@ -174,11 +174,6 @@
         <item>shouldent</item>
         <item>shouldn\'t</item>
 
-        <!-- TODO: Remove this entry after "yes" gets bumped up in the dictionary. -->
-        <item>255</item>
-        <item>tes</item>
-        <item>yes</item>
-
         <item>255</item>
         <item>thatd</item>
         <item>that\'d</item>
diff --git a/java/res/xml/spellchecker.xml b/java/res/xml/spellchecker.xml
index 2e4448c..66cd662 100644
--- a/java/res/xml/spellchecker.xml
+++ b/java/res/xml/spellchecker.xml
@@ -29,6 +29,14 @@
     />
     <subtype
             android:label="@string/subtype_generic"
+            android:subtypeLocale="en_US"
+    />
+    <subtype
+            android:label="@string/subtype_generic"
+            android:subtypeLocale="en_GB"
+    />
+    <subtype
+            android:label="@string/subtype_generic"
             android:subtypeLocale="fr"
     />
     <subtype
@@ -55,4 +63,12 @@
             android:label="@string/subtype_generic"
             android:subtypeLocale="nl"
     />
+    <subtype
+            android:label="@string/subtype_generic"
+            android:subtypeLocale="hr"
+    />
+    <subtype
+            android:label="@string/subtype_generic"
+            android:subtypeLocale="pt_BR"
+    />
 </spell-checker>
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
index 3cfef97..8bc7893 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
@@ -29,7 +29,6 @@
 import android.util.SparseArray;
 import android.view.MotionEvent;
 import android.view.View;
-import android.view.ViewParent;
 import android.view.ViewTreeObserver.OnGlobalLayoutListener;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.inputmethod.EditorInfo;
@@ -276,18 +275,7 @@
      */
     void sendAccessibilityEventForKey(Key key, int eventType) {
         final AccessibilityEvent event = createAccessibilityEvent(key, eventType);
-        final ViewParent parent = mKeyboardView.getParent();
-
-        if (parent == null) {
-            return;
-        }
-
-        if (!parent.requestSendAccessibilityEvent(mKeyboardView, event)) {
-            // TODO: Remove this line after the top-level view for the IME
-            // window is fixed to be non-null and requestSendAccessibilityEvent
-            // can return true.
-            mAccessibilityUtils.requestSendAccessibilityEvent(event);
-        }
+        mAccessibilityUtils.requestSendAccessibilityEvent(event);
     }
 
     /**
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 37fa674..2e4ce19 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -31,6 +31,7 @@
 import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
 import com.android.inputmethod.keyboard.internal.KeyboardState;
 import com.android.inputmethod.latin.DebugSettings;
+import com.android.inputmethod.latin.ImfUtils;
 import com.android.inputmethod.latin.InputView;
 import com.android.inputmethod.latin.LatinIME;
 import com.android.inputmethod.latin.LatinImeLogger;
@@ -180,7 +181,8 @@
                 || !keyboard.mId.mLocale.equals(oldKeyboard.mId.mLocale);
         final boolean needsToDisplayLanguage = mSubtypeSwitcher.needsToDisplayLanguage(
                 keyboard.mId.mLocale);
-        mKeyboardView.startDisplayLanguageOnSpacebar(subtypeChanged, needsToDisplayLanguage);
+        mKeyboardView.startDisplayLanguageOnSpacebar(subtypeChanged, needsToDisplayLanguage,
+                ImfUtils.hasMultipleEnabledIMEsOrSubtypes(mLatinIME, true));
     }
 
     public Keyboard getKeyboard() {
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
index cb37672..b159993 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -43,7 +43,6 @@
 import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
 import com.android.inputmethod.keyboard.PointerTracker.DrawingProxy;
 import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
-import com.android.inputmethod.latin.ImfUtils;
 import com.android.inputmethod.latin.LatinIME;
 import com.android.inputmethod.latin.LatinImeLogger;
 import com.android.inputmethod.latin.R;
@@ -83,6 +82,7 @@
     private ObjectAnimator mLanguageOnSpacebarFadeoutAnimator;
     private static final int ALPHA_OPAQUE = 255;
     private boolean mNeedsToDisplayLanguage;
+    private boolean mHasMultipleEnabledIMEsOrSubtypes;
     private int mLanguageOnSpacebarAnimAlpha = ALPHA_OPAQUE;
     private final float mSpacebarTextRatio;
     private float mSpacebarTextSize;
@@ -847,9 +847,10 @@
     }
 
     public void startDisplayLanguageOnSpacebar(boolean subtypeChanged,
-            boolean needsToDisplayLanguage) {
-        final ObjectAnimator animator = mLanguageOnSpacebarFadeoutAnimator;
+            boolean needsToDisplayLanguage, boolean hasMultipleEnabledIMEsOrSubtypes) {
         mNeedsToDisplayLanguage = needsToDisplayLanguage;
+        mHasMultipleEnabledIMEsOrSubtypes = hasMultipleEnabledIMEsOrSubtypes;
+        final ObjectAnimator animator = mLanguageOnSpacebarFadeoutAnimator;
         if (animator == null) {
             mNeedsToDisplayLanguage = false;
         } else {
@@ -881,18 +882,13 @@
         }
         if (key.mCode == Keyboard.CODE_SPACE) {
             drawSpacebar(key, canvas, paint);
-
             // Whether space key needs to show the "..." popup hint for special purposes
-            if (key.isLongPressEnabled() && ImfUtils.hasMultipleEnabledIMEsOrSubtypes(
-                    getContext(), true /* include aux subtypes */)) {
+            if (key.isLongPressEnabled() && mHasMultipleEnabledIMEsOrSubtypes) {
                 drawKeyPopupHint(key, canvas, paint, params);
             }
         } else if (key.mCode == Keyboard.CODE_LANGUAGE_SWITCH) {
             super.onDrawKeyTopVisuals(key, canvas, paint, params);
-            if (ImfUtils.hasMultipleEnabledIMEsOrSubtypes(
-                    getContext(), true /* include aux subtypes */)) {
-                drawKeyPopupHint(key, canvas, paint, params);
-            }
+            drawKeyPopupHint(key, canvas, paint, params);
         } else {
             super.onDrawKeyTopVisuals(key, canvas, paint, params);
         }
diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
index 5ea28ab..9d8bace 100644
--- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
+++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
@@ -42,6 +42,8 @@
     private final int mKeyboardMinWidth;
     private final int mKeyboardHeight;
     private final int mMostCommonKeyWidth;
+    private final Key[] mKeys;
+    private final TouchPositionCorrection mTouchPositionCorrection;
     private final Key[][] mGridNeighbors;
     private final String mLocaleStr;
 
@@ -62,13 +64,36 @@
         mKeyboardHeight = height;
         mKeyHeight = mostCommonKeyHeight;
         mMostCommonKeyWidth = mostCommonKeyWidth;
+        mKeys = keys;
+        mTouchPositionCorrection = touchPositionCorrection;
         mGridNeighbors = new Key[mGridSize][];
         if (minWidth == 0 || height == 0) {
             // No proximity required. Keyboard might be more keys keyboard.
             return;
         }
-        computeNearestNeighbors(
-                mostCommonKeyWidth, keys, touchPositionCorrection);
+        computeNearestNeighbors();
+        mNativeProximityInfo = createNativeProximityInfo();
+    }
+
+    // TODO: Remove this public constructor when the native part of the ProximityInfo becomes
+    // immutable.
+    // This public constructor aims only for test purpose.
+    public ProximityInfo(ProximityInfo o) {
+        mLocaleStr = o.mLocaleStr;
+        mGridWidth = o.mGridWidth;
+        mGridHeight = o.mGridHeight;
+        mGridSize = o.mGridSize;
+        mCellWidth = o.mCellWidth;
+        mCellHeight = o.mCellHeight;
+        mKeyboardMinWidth = o.mKeyboardMinWidth;
+        mKeyboardHeight = o.mKeyboardHeight;
+        mKeyHeight = o.mKeyHeight;
+        mMostCommonKeyWidth = o.mMostCommonKeyWidth;
+        mKeys = o.mKeys;
+        mTouchPositionCorrection = o.mTouchPositionCorrection;
+        mGridNeighbors = new Key[mGridSize][];
+        computeNearestNeighbors();
+        mNativeProximityInfo = createNativeProximityInfo();
     }
 
     public static ProximityInfo createDummyProximityInfo() {
@@ -100,8 +125,12 @@
 
     private native void releaseProximityInfoNative(long nativeProximityInfo);
 
-    private final void setProximityInfo(Key[][] gridNeighborKeys, int keyboardWidth,
-            int keyboardHeight, final Key[] keys, TouchPositionCorrection touchPositionCorrection) {
+    private final long createNativeProximityInfo() {
+        final Key[][] gridNeighborKeys = mGridNeighbors;
+        final int keyboardWidth = mKeyboardMinWidth;
+        final int keyboardHeight = mKeyboardHeight;
+        final Key[] keys = mKeys;
+        final TouchPositionCorrection touchPositionCorrection = mTouchPositionCorrection;
         final int[] proximityCharsArray = new int[mGridSize * MAX_PROXIMITY_CHARS_SIZE];
         Arrays.fill(proximityCharsArray, KeyDetector.NOT_A_CODE);
         for (int i = 0; i < mGridSize; ++i) {
@@ -156,7 +185,7 @@
             sweetSpotCenterXs = sweetSpotCenterYs = sweetSpotRadii = null;
         }
 
-        mNativeProximityInfo = setProximityInfoNative(mLocaleStr, MAX_PROXIMITY_CHARS_SIZE,
+        return setProximityInfoNative(mLocaleStr, MAX_PROXIMITY_CHARS_SIZE,
                 keyboardWidth, keyboardHeight, mGridWidth, mGridHeight, mMostCommonKeyWidth,
                 proximityCharsArray,
                 keyCount, keyXCoordinates, keyYCoordinates, keyWidths, keyHeights, keyCharCodes,
@@ -179,8 +208,9 @@
         }
     }
 
-    private void computeNearestNeighbors(int defaultWidth, final Key[] keys,
-            TouchPositionCorrection touchPositionCorrection) {
+    private void computeNearestNeighbors() {
+        final int defaultWidth = mMostCommonKeyWidth;
+        final Key[] keys = mKeys;
         final HashMap<Integer, Key> keyCodeMap = new HashMap<Integer, Key>();
         for (final Key key : keys) {
             keyCodeMap.put(key.mCode, key);
@@ -206,8 +236,6 @@
                         Arrays.copyOfRange(neighborKeys, 0, count);
             }
         }
-        setProximityInfo(mGridNeighbors, mKeyboardMinWidth, mKeyboardHeight, keys,
-                touchPositionCorrection);
     }
 
     public void fillArrayWithNearestKeyCodes(int x, int y, int primaryKeyCode, int[] dest) {
diff --git a/java/src/com/android/inputmethod/latin/AdditionalSubtype.java b/java/src/com/android/inputmethod/latin/AdditionalSubtype.java
index f0076a5..f8f1395 100644
--- a/java/src/com/android/inputmethod/latin/AdditionalSubtype.java
+++ b/java/src/com/android/inputmethod/latin/AdditionalSubtype.java
@@ -22,11 +22,13 @@
 import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME;
 
 import android.os.Build;
+import android.text.TextUtils;
 import android.view.inputmethod.InputMethodSubtype;
 
 import java.util.ArrayList;
 
 public class AdditionalSubtype {
+    private static final InputMethodSubtype[] EMPTY_SUBTYPE_ARRAY = new InputMethodSubtype[0];
 
     private AdditionalSubtype() {
         // This utility class is not publicly instantiable.
@@ -84,11 +86,14 @@
     }
 
     public static InputMethodSubtype[] createAdditionalSubtypesArray(String prefSubtypes) {
+        if (TextUtils.isEmpty(prefSubtypes)) {
+            return EMPTY_SUBTYPE_ARRAY;
+        }
         final String[] prefSubtypeArray = prefSubtypes.split(PREF_SUBTYPE_SEPARATOR);
         final ArrayList<InputMethodSubtype> subtypesList =
                 new ArrayList<InputMethodSubtype>(prefSubtypeArray.length);
-        for (int i = 0; i < prefSubtypeArray.length; i++) {
-            final InputMethodSubtype subtype = createAdditionalSubtype(prefSubtypeArray[i]);
+        for (final String prefSubtype : prefSubtypeArray) {
+            final InputMethodSubtype subtype = createAdditionalSubtype(prefSubtype);
             if (subtype.getNameResId() == SubtypeLocale.UNKNOWN_KEYBOARD_LAYOUT) {
                 // Skip unknown keyboard layout subtype. This may happen when predefined keyboard
                 // layout has been removed.
diff --git a/java/src/com/android/inputmethod/latin/AutoCorrection.java b/java/src/com/android/inputmethod/latin/AutoCorrection.java
index da1936a..32b213e 100644
--- a/java/src/com/android/inputmethod/latin/AutoCorrection.java
+++ b/java/src/com/android/inputmethod/latin/AutoCorrection.java
@@ -22,7 +22,7 @@
 import android.util.Log;
 
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
 
 public class AutoCorrection {
     private static final boolean DBG = LatinImeLogger.sDBG;
@@ -33,10 +33,10 @@
     }
 
     public static CharSequence computeAutoCorrectionWord(
-            HashMap<String, Dictionary> dictionaries,
-            WordComposer wordComposer, ArrayList<SuggestedWordInfo> suggestions,
-            CharSequence consideredWord, float autoCorrectionThreshold,
-            CharSequence whitelistedWord) {
+            final ConcurrentHashMap<String, Dictionary> dictionaries,
+            final WordComposer wordComposer, final ArrayList<SuggestedWordInfo> suggestions,
+            final CharSequence consideredWord, final float autoCorrectionThreshold,
+            final CharSequence whitelistedWord) {
         if (hasAutoCorrectionForWhitelistedWord(whitelistedWord)) {
             return whitelistedWord;
         } else if (hasAutoCorrectionForConsideredWord(
@@ -49,8 +49,8 @@
         return null;
     }
 
-    public static boolean isValidWord(
-            HashMap<String, Dictionary> dictionaries, CharSequence word, boolean ignoreCase) {
+    public static boolean isValidWord(final ConcurrentHashMap<String, Dictionary> dictionaries,
+           CharSequence word, boolean ignoreCase) {
         if (TextUtils.isEmpty(word)) {
             return false;
         }
@@ -75,7 +75,8 @@
     }
 
     public static boolean allowsToBeAutoCorrected(
-            HashMap<String, Dictionary> dictionaries, CharSequence word, boolean ignoreCase) {
+            final ConcurrentHashMap<String, Dictionary> dictionaries,
+            final CharSequence word, final boolean ignoreCase) {
         final WhitelistDictionary whitelistDictionary =
                 (WhitelistDictionary)dictionaries.get(Suggest.DICT_KEY_WHITELIST);
         // If "word" is in the whitelist dictionary, it should not be auto corrected.
@@ -91,8 +92,9 @@
     }
 
     private static boolean hasAutoCorrectionForConsideredWord(
-            HashMap<String, Dictionary> dictionaries, WordComposer wordComposer,
-            ArrayList<SuggestedWordInfo> suggestions, CharSequence consideredWord) {
+            final ConcurrentHashMap<String, Dictionary> dictionaries,
+            final WordComposer wordComposer, final ArrayList<SuggestedWordInfo> suggestions,
+            final CharSequence consideredWord) {
         if (TextUtils.isEmpty(consideredWord)) return false;
         return wordComposer.size() > 1 && suggestions.size() > 0
                 && !allowsToBeAutoCorrected(dictionaries, consideredWord, false);
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index a4670da..37eced5 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -58,6 +58,9 @@
 
     public static final String QUERY_PARAMETER_MAY_PROMPT_USER = "mayPrompt";
     public static final String QUERY_PARAMETER_TRUE = "true";
+    public static final String QUERY_PARAMETER_DELETE_RESULT = "result";
+    public static final String QUERY_PARAMETER_SUCCESS = "success";
+    public static final String QUERY_PARAMETER_FAILURE = "failure";
 
     // Prevents this class to be accidentally instantiated.
     private BinaryDictionaryFileDumper() {
@@ -145,7 +148,7 @@
         final int MODE_MIN = COMPRESSED_CRYPTED_COMPRESSED;
         final int MODE_MAX = NONE;
 
-        final Uri wordListUri = getProviderUriBuilder(id).build();
+        final Uri.Builder wordListUriBuilder = getProviderUriBuilder(id);
         final String outputFileName = BinaryDictionaryGetter.getCacheFileName(id, locale, context);
 
         for (int mode = MODE_MIN; mode <= MODE_MAX; ++mode) {
@@ -154,6 +157,7 @@
             File outputFile = null;
             FileOutputStream outputStream = null;
             AssetFileDescriptor afd = null;
+            final Uri wordListUri = wordListUriBuilder.build();
             try {
                 // Open input.
                 afd = openAssetFileDescriptor(resolver, wordListUri);
@@ -190,9 +194,12 @@
                         break;
                     }
                 checkMagicAndCopyFileTo(new BufferedInputStream(inputStream), outputStream);
-                if (0 >= resolver.delete(wordListUri, null, null)) {
+                wordListUriBuilder.appendQueryParameter(QUERY_PARAMETER_DELETE_RESULT,
+                        QUERY_PARAMETER_SUCCESS);
+                if (0 >= resolver.delete(wordListUriBuilder.build(), null, null)) {
                     Log.e(TAG, "Could not have the dictionary pack delete a word list");
                 }
+                BinaryDictionaryGetter.removeFilesWithIdExcept(context, id, outputFile);
                 // Success! Close files (through the finally{} clause) and return.
                 return AssetFileAddress.makeFromFileName(outputFileName);
             } catch (Exception e) {
@@ -225,9 +232,11 @@
         // We could not copy the file at all. This is very unexpected.
         // I'd rather not print the word list ID to the log out of security concerns
         Log.e(TAG, "Could not copy a word list. Will not be able to use it.");
-        // If we can't copy it we should probably delete it to avoid trying to copy it over
-        // and over each time we open LatinIME.
-        if (0 >= resolver.delete(wordListUri, null, null)) {
+        // If we can't copy it we should warn the dictionary provider so that it can mark it
+        // as invalid.
+        wordListUriBuilder.appendQueryParameter(QUERY_PARAMETER_DELETE_RESULT,
+                QUERY_PARAMETER_FAILURE);
+        if (0 >= resolver.delete(wordListUriBuilder.build(), null, null)) {
             Log.e(TAG, "In addition, we were unable to delete it.");
         }
         return null;
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
index 5acd629..063243e 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
@@ -283,6 +283,39 @@
     }
 
     /**
+     * Remove all files with the passed id, except the passed file.
+     *
+     * If a dictionary with a given ID has a metadata change that causes it to change
+     * path, we need to remove the old version. The only way to do this is to check all
+     * installed files for a matching ID in a different directory.
+     */
+    public static void removeFilesWithIdExcept(final Context context, final String id,
+            final File fileToKeep) {
+        try {
+            final File canonicalFileToKeep = fileToKeep.getCanonicalFile();
+            final File[] directoryList = getCachedDirectoryList(context);
+            if (null == directoryList) return;
+            for (File directory : directoryList) {
+                // There is one directory per locale. See #getCachedDirectoryList
+                if (!directory.isDirectory()) continue;
+                final File[] wordLists = directory.listFiles();
+                if (null == wordLists) continue;
+                for (File wordList : wordLists) {
+                    final String fileId = getWordListIdFromFileName(wordList.getName());
+                    if (fileId.equals(id)) {
+                        if (!canonicalFileToKeep.equals(wordList.getCanonicalFile())) {
+                            wordList.delete();
+                        }
+                    }
+                }
+            }
+        } catch (java.io.IOException e) {
+            Log.e(TAG, "IOException trying to cleanup files : " + e);
+        }
+    }
+
+
+    /**
      * Returns the id associated with the main word list for a specified locale.
      *
      * Word lists stored in Android Keyboard's resources are referred to as the "main"
diff --git a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
index 4b77473..0a09c84 100644
--- a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
@@ -149,7 +149,11 @@
         final Cursor cursor = mContext.getContentResolver().query(
                 Contacts.CONTENT_URI, PROJECTION_ID_ONLY, null, null, null);
         if (cursor != null) {
-            return cursor.getCount();
+            try {
+                return cursor.getCount();
+            } finally {
+                cursor.close();
+            }
         }
         return 0;
     }
diff --git a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java
index 7a740b3..dd9c57e 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableDictionary.java
@@ -261,6 +261,28 @@
         return (node == null) ? false : !node.mShortcutOnly;
     }
 
+    protected boolean removeBigram(String word1, String word2) {
+        // Refer to addOrSetBigram() about word1.toLowerCase()
+        final Node firstWord = searchWord(mRoots, word1.toLowerCase(), 0, null);
+        final Node secondWord = searchWord(mRoots, word2, 0, null);
+        LinkedList<NextWord> bigram = firstWord.mNGrams;
+        NextWord bigramNode = null;
+        if (bigram == null || bigram.size() == 0) {
+            return false;
+        } else {
+            for (NextWord nw : bigram) {
+                if (nw.mWord == secondWord) {
+                    bigramNode = nw;
+                    break;
+                }
+            }
+        }
+        if (bigramNode == null) {
+            return false;
+        }
+        return bigram.remove(bigramNode);
+    }
+
     /**
      * Returns the word's frequency or -1 if not found
      */
@@ -639,167 +661,167 @@
      * is combined.
      */
     private static final char BASE_CHARS[] = {
-        0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 
-        0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 
-        0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 
-        0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 
-        0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 
-        0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 
-        0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 
-        0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 
-        0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 
-        0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 
-        0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 
-        0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 
-        0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 
-        0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 
-        0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 
-        0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 
-        0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 
-        0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 
-        0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 
-        0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 
-        0x0020, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 
-        0x0020, 0x00a9, 0x0061, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0020, 
-        0x00b0, 0x00b1, 0x0032, 0x0033, 0x0020, 0x03bc, 0x00b6, 0x00b7, 
-        0x0020, 0x0031, 0x006f, 0x00bb, 0x0031, 0x0031, 0x0033, 0x00bf, 
-        0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x00c6, 0x0043, 
-        0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, 
-        0x00d0, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x00d7, 
+        0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
+        0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
+        0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
+        0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
+        0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
+        0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
+        0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
+        0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
+        0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+        0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
+        0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
+        0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
+        0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+        0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
+        0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
+        0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
+        0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
+        0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f,
+        0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
+        0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f,
+        0x0020, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
+        0x0020, 0x00a9, 0x0061, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0020,
+        0x00b0, 0x00b1, 0x0032, 0x0033, 0x0020, 0x03bc, 0x00b6, 0x00b7,
+        0x0020, 0x0031, 0x006f, 0x00bb, 0x0031, 0x0031, 0x0033, 0x00bf,
+        0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x00c6, 0x0043,
+        0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049,
+        0x00d0, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x00d7,
         0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x00de, 0x0073, // Manually changed d8 to 4f
                                                                         // Manually changed df to 73
-        0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x00e6, 0x0063, 
-        0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, 
-        0x00f0, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x00f7, 
+        0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x00e6, 0x0063,
+        0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069,
+        0x00f0, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x00f7,
         0x006f, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0x00fe, 0x0079, // Manually changed f8 to 6f
-        0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, 
-        0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, 
-        0x0110, 0x0111, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 
-        0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067, 
-        0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0126, 0x0127, 
-        0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 
-        0x0049, 0x0131, 0x0049, 0x0069, 0x004a, 0x006a, 0x004b, 0x006b, 
-        0x0138, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 
-        0x006c, 0x0141, 0x0142, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 
-        0x006e, 0x02bc, 0x014a, 0x014b, 0x004f, 0x006f, 0x004f, 0x006f, 
-        0x004f, 0x006f, 0x0152, 0x0153, 0x0052, 0x0072, 0x0052, 0x0072, 
-        0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 
-        0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0166, 0x0167, 
-        0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 
-        0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, 
-        0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, 
-        0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185, 0x0186, 0x0187, 
-        0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d, 0x018e, 0x018f, 
-        0x0190, 0x0191, 0x0192, 0x0193, 0x0194, 0x0195, 0x0196, 0x0197, 
-        0x0198, 0x0199, 0x019a, 0x019b, 0x019c, 0x019d, 0x019e, 0x019f, 
-        0x004f, 0x006f, 0x01a2, 0x01a3, 0x01a4, 0x01a5, 0x01a6, 0x01a7, 
-        0x01a8, 0x01a9, 0x01aa, 0x01ab, 0x01ac, 0x01ad, 0x01ae, 0x0055, 
-        0x0075, 0x01b1, 0x01b2, 0x01b3, 0x01b4, 0x01b5, 0x01b6, 0x01b7, 
-        0x01b8, 0x01b9, 0x01ba, 0x01bb, 0x01bc, 0x01bd, 0x01be, 0x01bf, 
-        0x01c0, 0x01c1, 0x01c2, 0x01c3, 0x0044, 0x0044, 0x0064, 0x004c, 
-        0x004c, 0x006c, 0x004e, 0x004e, 0x006e, 0x0041, 0x0061, 0x0049, 
-        0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x00dc, 0x00fc, 0x00dc, 
-        0x00fc, 0x00dc, 0x00fc, 0x00dc, 0x00fc, 0x01dd, 0x00c4, 0x00e4, 
-        0x0226, 0x0227, 0x00c6, 0x00e6, 0x01e4, 0x01e5, 0x0047, 0x0067, 
-        0x004b, 0x006b, 0x004f, 0x006f, 0x01ea, 0x01eb, 0x01b7, 0x0292, 
-        0x006a, 0x0044, 0x0044, 0x0064, 0x0047, 0x0067, 0x01f6, 0x01f7, 
-        0x004e, 0x006e, 0x00c5, 0x00e5, 0x00c6, 0x00e6, 0x00d8, 0x00f8, 
-        0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 
-        0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 
-        0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, 
-        0x0053, 0x0073, 0x0054, 0x0074, 0x021c, 0x021d, 0x0048, 0x0068, 
-        0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, 0x0041, 0x0061, 
-        0x0045, 0x0065, 0x00d6, 0x00f6, 0x00d5, 0x00f5, 0x004f, 0x006f, 
-        0x022e, 0x022f, 0x0059, 0x0079, 0x0234, 0x0235, 0x0236, 0x0237, 
-        0x0238, 0x0239, 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x023f, 
-        0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, 
-        0x0248, 0x0249, 0x024a, 0x024b, 0x024c, 0x024d, 0x024e, 0x024f, 
-        0x0250, 0x0251, 0x0252, 0x0253, 0x0254, 0x0255, 0x0256, 0x0257, 
-        0x0258, 0x0259, 0x025a, 0x025b, 0x025c, 0x025d, 0x025e, 0x025f, 
-        0x0260, 0x0261, 0x0262, 0x0263, 0x0264, 0x0265, 0x0266, 0x0267, 
-        0x0268, 0x0269, 0x026a, 0x026b, 0x026c, 0x026d, 0x026e, 0x026f, 
-        0x0270, 0x0271, 0x0272, 0x0273, 0x0274, 0x0275, 0x0276, 0x0277, 
-        0x0278, 0x0279, 0x027a, 0x027b, 0x027c, 0x027d, 0x027e, 0x027f, 
-        0x0280, 0x0281, 0x0282, 0x0283, 0x0284, 0x0285, 0x0286, 0x0287, 
-        0x0288, 0x0289, 0x028a, 0x028b, 0x028c, 0x028d, 0x028e, 0x028f, 
-        0x0290, 0x0291, 0x0292, 0x0293, 0x0294, 0x0295, 0x0296, 0x0297, 
-        0x0298, 0x0299, 0x029a, 0x029b, 0x029c, 0x029d, 0x029e, 0x029f, 
-        0x02a0, 0x02a1, 0x02a2, 0x02a3, 0x02a4, 0x02a5, 0x02a6, 0x02a7, 
-        0x02a8, 0x02a9, 0x02aa, 0x02ab, 0x02ac, 0x02ad, 0x02ae, 0x02af, 
-        0x0068, 0x0266, 0x006a, 0x0072, 0x0279, 0x027b, 0x0281, 0x0077, 
-        0x0079, 0x02b9, 0x02ba, 0x02bb, 0x02bc, 0x02bd, 0x02be, 0x02bf, 
-        0x02c0, 0x02c1, 0x02c2, 0x02c3, 0x02c4, 0x02c5, 0x02c6, 0x02c7, 
-        0x02c8, 0x02c9, 0x02ca, 0x02cb, 0x02cc, 0x02cd, 0x02ce, 0x02cf, 
-        0x02d0, 0x02d1, 0x02d2, 0x02d3, 0x02d4, 0x02d5, 0x02d6, 0x02d7, 
-        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x02de, 0x02df, 
-        0x0263, 0x006c, 0x0073, 0x0078, 0x0295, 0x02e5, 0x02e6, 0x02e7, 
-        0x02e8, 0x02e9, 0x02ea, 0x02eb, 0x02ec, 0x02ed, 0x02ee, 0x02ef, 
-        0x02f0, 0x02f1, 0x02f2, 0x02f3, 0x02f4, 0x02f5, 0x02f6, 0x02f7, 
-        0x02f8, 0x02f9, 0x02fa, 0x02fb, 0x02fc, 0x02fd, 0x02fe, 0x02ff, 
-        0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307, 
-        0x0308, 0x0309, 0x030a, 0x030b, 0x030c, 0x030d, 0x030e, 0x030f, 
-        0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317, 
-        0x0318, 0x0319, 0x031a, 0x031b, 0x031c, 0x031d, 0x031e, 0x031f, 
-        0x0320, 0x0321, 0x0322, 0x0323, 0x0324, 0x0325, 0x0326, 0x0327, 
-        0x0328, 0x0329, 0x032a, 0x032b, 0x032c, 0x032d, 0x032e, 0x032f, 
-        0x0330, 0x0331, 0x0332, 0x0333, 0x0334, 0x0335, 0x0336, 0x0337, 
-        0x0338, 0x0339, 0x033a, 0x033b, 0x033c, 0x033d, 0x033e, 0x033f, 
-        0x0300, 0x0301, 0x0342, 0x0313, 0x0308, 0x0345, 0x0346, 0x0347, 
-        0x0348, 0x0349, 0x034a, 0x034b, 0x034c, 0x034d, 0x034e, 0x034f, 
-        0x0350, 0x0351, 0x0352, 0x0353, 0x0354, 0x0355, 0x0356, 0x0357, 
-        0x0358, 0x0359, 0x035a, 0x035b, 0x035c, 0x035d, 0x035e, 0x035f, 
-        0x0360, 0x0361, 0x0362, 0x0363, 0x0364, 0x0365, 0x0366, 0x0367, 
-        0x0368, 0x0369, 0x036a, 0x036b, 0x036c, 0x036d, 0x036e, 0x036f, 
-        0x0370, 0x0371, 0x0372, 0x0373, 0x02b9, 0x0375, 0x0376, 0x0377, 
-        0x0378, 0x0379, 0x0020, 0x037b, 0x037c, 0x037d, 0x003b, 0x037f, 
-        0x0380, 0x0381, 0x0382, 0x0383, 0x0020, 0x00a8, 0x0391, 0x00b7, 
-        0x0395, 0x0397, 0x0399, 0x038b, 0x039f, 0x038d, 0x03a5, 0x03a9, 
-        0x03ca, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 
-        0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 
-        0x03a0, 0x03a1, 0x03a2, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 
-        0x03a8, 0x03a9, 0x0399, 0x03a5, 0x03b1, 0x03b5, 0x03b7, 0x03b9, 
-        0x03cb, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 
-        0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 
-        0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 
-        0x03c8, 0x03c9, 0x03b9, 0x03c5, 0x03bf, 0x03c5, 0x03c9, 0x03cf, 
-        0x03b2, 0x03b8, 0x03a5, 0x03d2, 0x03d2, 0x03c6, 0x03c0, 0x03d7, 
-        0x03d8, 0x03d9, 0x03da, 0x03db, 0x03dc, 0x03dd, 0x03de, 0x03df, 
-        0x03e0, 0x03e1, 0x03e2, 0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x03e7, 
-        0x03e8, 0x03e9, 0x03ea, 0x03eb, 0x03ec, 0x03ed, 0x03ee, 0x03ef, 
-        0x03ba, 0x03c1, 0x03c2, 0x03f3, 0x0398, 0x03b5, 0x03f6, 0x03f7, 
-        0x03f8, 0x03a3, 0x03fa, 0x03fb, 0x03fc, 0x03fd, 0x03fe, 0x03ff, 
-        0x0415, 0x0415, 0x0402, 0x0413, 0x0404, 0x0405, 0x0406, 0x0406, 
-        0x0408, 0x0409, 0x040a, 0x040b, 0x041a, 0x0418, 0x0423, 0x040f, 
-        0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 
-        0x0418, 0x0418, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 
-        0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 
-        0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 
-        0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 
-        0x0438, 0x0438, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 
-        0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 
-        0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 
-        0x0435, 0x0435, 0x0452, 0x0433, 0x0454, 0x0455, 0x0456, 0x0456, 
-        0x0458, 0x0459, 0x045a, 0x045b, 0x043a, 0x0438, 0x0443, 0x045f, 
-        0x0460, 0x0461, 0x0462, 0x0463, 0x0464, 0x0465, 0x0466, 0x0467, 
-        0x0468, 0x0469, 0x046a, 0x046b, 0x046c, 0x046d, 0x046e, 0x046f, 
-        0x0470, 0x0471, 0x0472, 0x0473, 0x0474, 0x0475, 0x0474, 0x0475, 
-        0x0478, 0x0479, 0x047a, 0x047b, 0x047c, 0x047d, 0x047e, 0x047f, 
-        0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487, 
-        0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x048f, 
-        0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x0497, 
-        0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x049f, 
-        0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x04a7, 
-        0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x04af, 
-        0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x04b7, 
-        0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x04be, 0x04bf, 
-        0x04c0, 0x0416, 0x0436, 0x04c3, 0x04c4, 0x04c5, 0x04c6, 0x04c7, 
-        0x04c8, 0x04c9, 0x04ca, 0x04cb, 0x04cc, 0x04cd, 0x04ce, 0x04cf, 
-        0x0410, 0x0430, 0x0410, 0x0430, 0x04d4, 0x04d5, 0x0415, 0x0435, 
-        0x04d8, 0x04d9, 0x04d8, 0x04d9, 0x0416, 0x0436, 0x0417, 0x0437, 
-        0x04e0, 0x04e1, 0x0418, 0x0438, 0x0418, 0x0438, 0x041e, 0x043e, 
-        0x04e8, 0x04e9, 0x04e8, 0x04e9, 0x042d, 0x044d, 0x0423, 0x0443, 
-        0x0423, 0x0443, 0x0423, 0x0443, 0x0427, 0x0447, 0x04f6, 0x04f7, 
-        0x042b, 0x044b, 0x04fa, 0x04fb, 0x04fc, 0x04fd, 0x04fe, 0x04ff, 
+        0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063,
+        0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064,
+        0x0110, 0x0111, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065,
+        0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067,
+        0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0126, 0x0127,
+        0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069,
+        0x0049, 0x0131, 0x0049, 0x0069, 0x004a, 0x006a, 0x004b, 0x006b,
+        0x0138, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c,
+        0x006c, 0x0141, 0x0142, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e,
+        0x006e, 0x02bc, 0x014a, 0x014b, 0x004f, 0x006f, 0x004f, 0x006f,
+        0x004f, 0x006f, 0x0152, 0x0153, 0x0052, 0x0072, 0x0052, 0x0072,
+        0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073,
+        0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0166, 0x0167,
+        0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075,
+        0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079,
+        0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073,
+        0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185, 0x0186, 0x0187,
+        0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d, 0x018e, 0x018f,
+        0x0190, 0x0191, 0x0192, 0x0193, 0x0194, 0x0195, 0x0196, 0x0197,
+        0x0198, 0x0199, 0x019a, 0x019b, 0x019c, 0x019d, 0x019e, 0x019f,
+        0x004f, 0x006f, 0x01a2, 0x01a3, 0x01a4, 0x01a5, 0x01a6, 0x01a7,
+        0x01a8, 0x01a9, 0x01aa, 0x01ab, 0x01ac, 0x01ad, 0x01ae, 0x0055,
+        0x0075, 0x01b1, 0x01b2, 0x01b3, 0x01b4, 0x01b5, 0x01b6, 0x01b7,
+        0x01b8, 0x01b9, 0x01ba, 0x01bb, 0x01bc, 0x01bd, 0x01be, 0x01bf,
+        0x01c0, 0x01c1, 0x01c2, 0x01c3, 0x0044, 0x0044, 0x0064, 0x004c,
+        0x004c, 0x006c, 0x004e, 0x004e, 0x006e, 0x0041, 0x0061, 0x0049,
+        0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x00dc, 0x00fc, 0x00dc,
+        0x00fc, 0x00dc, 0x00fc, 0x00dc, 0x00fc, 0x01dd, 0x00c4, 0x00e4,
+        0x0226, 0x0227, 0x00c6, 0x00e6, 0x01e4, 0x01e5, 0x0047, 0x0067,
+        0x004b, 0x006b, 0x004f, 0x006f, 0x01ea, 0x01eb, 0x01b7, 0x0292,
+        0x006a, 0x0044, 0x0044, 0x0064, 0x0047, 0x0067, 0x01f6, 0x01f7,
+        0x004e, 0x006e, 0x00c5, 0x00e5, 0x00c6, 0x00e6, 0x00d8, 0x00f8,
+        0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065,
+        0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f,
+        0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075,
+        0x0053, 0x0073, 0x0054, 0x0074, 0x021c, 0x021d, 0x0048, 0x0068,
+        0x0220, 0x0221, 0x0222, 0x0223, 0x0224, 0x0225, 0x0041, 0x0061,
+        0x0045, 0x0065, 0x00d6, 0x00f6, 0x00d5, 0x00f5, 0x004f, 0x006f,
+        0x022e, 0x022f, 0x0059, 0x0079, 0x0234, 0x0235, 0x0236, 0x0237,
+        0x0238, 0x0239, 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x023f,
+        0x0240, 0x0241, 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247,
+        0x0248, 0x0249, 0x024a, 0x024b, 0x024c, 0x024d, 0x024e, 0x024f,
+        0x0250, 0x0251, 0x0252, 0x0253, 0x0254, 0x0255, 0x0256, 0x0257,
+        0x0258, 0x0259, 0x025a, 0x025b, 0x025c, 0x025d, 0x025e, 0x025f,
+        0x0260, 0x0261, 0x0262, 0x0263, 0x0264, 0x0265, 0x0266, 0x0267,
+        0x0268, 0x0269, 0x026a, 0x026b, 0x026c, 0x026d, 0x026e, 0x026f,
+        0x0270, 0x0271, 0x0272, 0x0273, 0x0274, 0x0275, 0x0276, 0x0277,
+        0x0278, 0x0279, 0x027a, 0x027b, 0x027c, 0x027d, 0x027e, 0x027f,
+        0x0280, 0x0281, 0x0282, 0x0283, 0x0284, 0x0285, 0x0286, 0x0287,
+        0x0288, 0x0289, 0x028a, 0x028b, 0x028c, 0x028d, 0x028e, 0x028f,
+        0x0290, 0x0291, 0x0292, 0x0293, 0x0294, 0x0295, 0x0296, 0x0297,
+        0x0298, 0x0299, 0x029a, 0x029b, 0x029c, 0x029d, 0x029e, 0x029f,
+        0x02a0, 0x02a1, 0x02a2, 0x02a3, 0x02a4, 0x02a5, 0x02a6, 0x02a7,
+        0x02a8, 0x02a9, 0x02aa, 0x02ab, 0x02ac, 0x02ad, 0x02ae, 0x02af,
+        0x0068, 0x0266, 0x006a, 0x0072, 0x0279, 0x027b, 0x0281, 0x0077,
+        0x0079, 0x02b9, 0x02ba, 0x02bb, 0x02bc, 0x02bd, 0x02be, 0x02bf,
+        0x02c0, 0x02c1, 0x02c2, 0x02c3, 0x02c4, 0x02c5, 0x02c6, 0x02c7,
+        0x02c8, 0x02c9, 0x02ca, 0x02cb, 0x02cc, 0x02cd, 0x02ce, 0x02cf,
+        0x02d0, 0x02d1, 0x02d2, 0x02d3, 0x02d4, 0x02d5, 0x02d6, 0x02d7,
+        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x02de, 0x02df,
+        0x0263, 0x006c, 0x0073, 0x0078, 0x0295, 0x02e5, 0x02e6, 0x02e7,
+        0x02e8, 0x02e9, 0x02ea, 0x02eb, 0x02ec, 0x02ed, 0x02ee, 0x02ef,
+        0x02f0, 0x02f1, 0x02f2, 0x02f3, 0x02f4, 0x02f5, 0x02f6, 0x02f7,
+        0x02f8, 0x02f9, 0x02fa, 0x02fb, 0x02fc, 0x02fd, 0x02fe, 0x02ff,
+        0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307,
+        0x0308, 0x0309, 0x030a, 0x030b, 0x030c, 0x030d, 0x030e, 0x030f,
+        0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317,
+        0x0318, 0x0319, 0x031a, 0x031b, 0x031c, 0x031d, 0x031e, 0x031f,
+        0x0320, 0x0321, 0x0322, 0x0323, 0x0324, 0x0325, 0x0326, 0x0327,
+        0x0328, 0x0329, 0x032a, 0x032b, 0x032c, 0x032d, 0x032e, 0x032f,
+        0x0330, 0x0331, 0x0332, 0x0333, 0x0334, 0x0335, 0x0336, 0x0337,
+        0x0338, 0x0339, 0x033a, 0x033b, 0x033c, 0x033d, 0x033e, 0x033f,
+        0x0300, 0x0301, 0x0342, 0x0313, 0x0308, 0x0345, 0x0346, 0x0347,
+        0x0348, 0x0349, 0x034a, 0x034b, 0x034c, 0x034d, 0x034e, 0x034f,
+        0x0350, 0x0351, 0x0352, 0x0353, 0x0354, 0x0355, 0x0356, 0x0357,
+        0x0358, 0x0359, 0x035a, 0x035b, 0x035c, 0x035d, 0x035e, 0x035f,
+        0x0360, 0x0361, 0x0362, 0x0363, 0x0364, 0x0365, 0x0366, 0x0367,
+        0x0368, 0x0369, 0x036a, 0x036b, 0x036c, 0x036d, 0x036e, 0x036f,
+        0x0370, 0x0371, 0x0372, 0x0373, 0x02b9, 0x0375, 0x0376, 0x0377,
+        0x0378, 0x0379, 0x0020, 0x037b, 0x037c, 0x037d, 0x003b, 0x037f,
+        0x0380, 0x0381, 0x0382, 0x0383, 0x0020, 0x00a8, 0x0391, 0x00b7,
+        0x0395, 0x0397, 0x0399, 0x038b, 0x039f, 0x038d, 0x03a5, 0x03a9,
+        0x03ca, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
+        0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,
+        0x03a0, 0x03a1, 0x03a2, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7,
+        0x03a8, 0x03a9, 0x0399, 0x03a5, 0x03b1, 0x03b5, 0x03b7, 0x03b9,
+        0x03cb, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,
+        0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,
+        0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,
+        0x03c8, 0x03c9, 0x03b9, 0x03c5, 0x03bf, 0x03c5, 0x03c9, 0x03cf,
+        0x03b2, 0x03b8, 0x03a5, 0x03d2, 0x03d2, 0x03c6, 0x03c0, 0x03d7,
+        0x03d8, 0x03d9, 0x03da, 0x03db, 0x03dc, 0x03dd, 0x03de, 0x03df,
+        0x03e0, 0x03e1, 0x03e2, 0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x03e7,
+        0x03e8, 0x03e9, 0x03ea, 0x03eb, 0x03ec, 0x03ed, 0x03ee, 0x03ef,
+        0x03ba, 0x03c1, 0x03c2, 0x03f3, 0x0398, 0x03b5, 0x03f6, 0x03f7,
+        0x03f8, 0x03a3, 0x03fa, 0x03fb, 0x03fc, 0x03fd, 0x03fe, 0x03ff,
+        0x0415, 0x0415, 0x0402, 0x0413, 0x0404, 0x0405, 0x0406, 0x0406,
+        0x0408, 0x0409, 0x040a, 0x040b, 0x041a, 0x0418, 0x0423, 0x040f,
+        0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
+        0x0418, 0x0418, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
+        0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
+        0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
+        0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
+        0x0438, 0x0438, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
+        0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
+        0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
+        0x0435, 0x0435, 0x0452, 0x0433, 0x0454, 0x0455, 0x0456, 0x0456,
+        0x0458, 0x0459, 0x045a, 0x045b, 0x043a, 0x0438, 0x0443, 0x045f,
+        0x0460, 0x0461, 0x0462, 0x0463, 0x0464, 0x0465, 0x0466, 0x0467,
+        0x0468, 0x0469, 0x046a, 0x046b, 0x046c, 0x046d, 0x046e, 0x046f,
+        0x0470, 0x0471, 0x0472, 0x0473, 0x0474, 0x0475, 0x0474, 0x0475,
+        0x0478, 0x0479, 0x047a, 0x047b, 0x047c, 0x047d, 0x047e, 0x047f,
+        0x0480, 0x0481, 0x0482, 0x0483, 0x0484, 0x0485, 0x0486, 0x0487,
+        0x0488, 0x0489, 0x048a, 0x048b, 0x048c, 0x048d, 0x048e, 0x048f,
+        0x0490, 0x0491, 0x0492, 0x0493, 0x0494, 0x0495, 0x0496, 0x0497,
+        0x0498, 0x0499, 0x049a, 0x049b, 0x049c, 0x049d, 0x049e, 0x049f,
+        0x04a0, 0x04a1, 0x04a2, 0x04a3, 0x04a4, 0x04a5, 0x04a6, 0x04a7,
+        0x04a8, 0x04a9, 0x04aa, 0x04ab, 0x04ac, 0x04ad, 0x04ae, 0x04af,
+        0x04b0, 0x04b1, 0x04b2, 0x04b3, 0x04b4, 0x04b5, 0x04b6, 0x04b7,
+        0x04b8, 0x04b9, 0x04ba, 0x04bb, 0x04bc, 0x04bd, 0x04be, 0x04bf,
+        0x04c0, 0x0416, 0x0436, 0x04c3, 0x04c4, 0x04c5, 0x04c6, 0x04c7,
+        0x04c8, 0x04c9, 0x04ca, 0x04cb, 0x04cc, 0x04cd, 0x04ce, 0x04cf,
+        0x0410, 0x0430, 0x0410, 0x0430, 0x04d4, 0x04d5, 0x0415, 0x0435,
+        0x04d8, 0x04d9, 0x04d8, 0x04d9, 0x0416, 0x0436, 0x0417, 0x0437,
+        0x04e0, 0x04e1, 0x0418, 0x0438, 0x0418, 0x0438, 0x041e, 0x043e,
+        0x04e8, 0x04e9, 0x04e8, 0x04e9, 0x042d, 0x044d, 0x0423, 0x0443,
+        0x0423, 0x0443, 0x0423, 0x0443, 0x0427, 0x0447, 0x04f6, 0x04f7,
+        0x042b, 0x044b, 0x04fa, 0x04fb, 0x04fc, 0x04fd, 0x04fe, 0x04ff,
     };
 
     // generated with:
diff --git a/java/src/com/android/inputmethod/latin/LastComposedWord.java b/java/src/com/android/inputmethod/latin/LastComposedWord.java
index af0ef4b..4e1f5fe 100644
--- a/java/src/com/android/inputmethod/latin/LastComposedWord.java
+++ b/java/src/com/android/inputmethod/latin/LastComposedWord.java
@@ -46,17 +46,18 @@
     public final String mTypedWord;
     public final String mCommittedWord;
     public final int mSeparatorCode;
+    public final CharSequence mPrevWord;
 
     private boolean mActive;
 
     public static final LastComposedWord NOT_A_COMPOSED_WORD =
-            new LastComposedWord(null, null, null, "", "", NOT_A_SEPARATOR);
+            new LastComposedWord(null, null, null, "", "", NOT_A_SEPARATOR, null);
 
     // Warning: this is using the passed objects as is and fully expects them to be
     // immutable. Do not fiddle with their contents after you passed them to this constructor.
     public LastComposedWord(final int[] primaryKeyCodes, final int[] xCoordinates,
             final int[] yCoordinates, final String typedWord, final String committedWord,
-            final int separatorCode) {
+            final int separatorCode, final CharSequence prevWord) {
         mPrimaryKeyCodes = primaryKeyCodes;
         mXCoordinates = xCoordinates;
         mYCoordinates = yCoordinates;
@@ -64,6 +65,7 @@
         mCommittedWord = committedWord;
         mSeparatorCode = separatorCode;
         mActive = true;
+        mPrevWord = prevWord;
     }
 
     public void deactivate() {
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index b474a85..d7d27b5 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1027,16 +1027,16 @@
         if (!mWordComposer.isComposingWord()) return;
         final CharSequence typedWord = mWordComposer.getTypedWord();
         if (typedWord.length() > 0) {
-            mLastComposedWord = mWordComposer.commitWord(
-                    LastComposedWord.COMMIT_TYPE_USER_TYPED_WORD, typedWord.toString(),
-                    separatorCode);
             if (ic != null) {
                 ic.commitText(typedWord, 1);
                 if (ProductionFlag.IS_EXPERIMENTAL) {
                     ResearchLogger.latinIME_commitText(typedWord);
                 }
             }
-            addToUserHistoryDictionary(typedWord);
+            final CharSequence prevWord = addToUserHistoryDictionary(typedWord);
+            mLastComposedWord = mWordComposer.commitWord(
+                    LastComposedWord.COMMIT_TYPE_USER_TYPED_WORD, typedWord.toString(),
+                    separatorCode, prevWord);
         }
         updateSuggestions();
     }
@@ -1836,8 +1836,6 @@
             mExpectingUpdateSelection = true;
             commitChosenWord(autoCorrection, LastComposedWord.COMMIT_TYPE_DECIDED_WORD,
                     separatorCodePoint);
-            // Add the word to the user history dictionary
-            addToUserHistoryDictionary(autoCorrection);
             if (!typedWord.equals(autoCorrection) && null != ic) {
                 // This will make the correction flash for a short while as a visual clue
                 // to the user that auto-correction happened.
@@ -1915,8 +1913,6 @@
                 LastComposedWord.NOT_A_SEPARATOR);
         // Don't allow cancellation of manual pick
         mLastComposedWord.deactivate();
-        // Add the word to the user history dictionary
-        addToUserHistoryDictionary(suggestion);
         mSpaceState = SPACE_STATE_PHANTOM;
         // TODO: is this necessary?
         mKeyboardSwitcher.updateShiftState();
@@ -1959,31 +1955,33 @@
     /**
      * Commits the chosen word to the text field and saves it for later retrieval.
      */
-    private void commitChosenWord(final CharSequence bestWord, final int commitType,
+    private void commitChosenWord(final CharSequence chosenWord, final int commitType,
             final int separatorCode) {
         final InputConnection ic = getCurrentInputConnection();
         if (ic != null) {
             if (mSettingsValues.mEnableSuggestionSpanInsertion) {
                 final SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
                 ic.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(
-                        this, bestWord, suggestedWords, mIsMainDictionaryAvailable),
+                        this, chosenWord, suggestedWords, mIsMainDictionaryAvailable),
                         1);
                 if (ProductionFlag.IS_EXPERIMENTAL) {
-                    ResearchLogger.latinIME_commitText(bestWord);
+                    ResearchLogger.latinIME_commitText(chosenWord);
                 }
             } else {
-                ic.commitText(bestWord, 1);
+                ic.commitText(chosenWord, 1);
                 if (ProductionFlag.IS_EXPERIMENTAL) {
-                    ResearchLogger.latinIME_commitText(bestWord);
+                    ResearchLogger.latinIME_commitText(chosenWord);
                 }
             }
         }
+        // Add the word to the user history dictionary
+        final CharSequence prevWord = addToUserHistoryDictionary(chosenWord);
         // TODO: figure out here if this is an auto-correct or if the best word is actually
         // what user typed. Note: currently this is done much later in
         // LastComposedWord#didCommitTypedWord by string equality of the remembered
         // strings.
-        mLastComposedWord = mWordComposer.commitWord(commitType, bestWord.toString(),
-                separatorCode);
+        mLastComposedWord = mWordComposer.commitWord(commitType, chosenWord.toString(),
+                separatorCode, prevWord);
     }
 
     public void updateBigramPredictions() {
@@ -2023,15 +2021,15 @@
         setSuggestionStripShown(isSuggestionsStripVisible());
     }
 
-    private void addToUserHistoryDictionary(final CharSequence suggestion) {
-        if (TextUtils.isEmpty(suggestion)) return;
+    private CharSequence addToUserHistoryDictionary(final CharSequence suggestion) {
+        if (TextUtils.isEmpty(suggestion)) return null;
 
         // Only auto-add to dictionary if auto-correct is ON. Otherwise we'll be
         // adding words in situations where the user or application really didn't
         // want corrections enabled or learned.
         if (!(mCorrectionMode == Suggest.CORRECTION_FULL
                 || mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM)) {
-            return;
+            return null;
         }
 
         if (mUserHistoryDictionary != null) {
@@ -2051,7 +2049,9 @@
             }
             mUserHistoryDictionary.addToUserHistory(null == prevWord ? null : prevWord.toString(),
                     secondWord);
+            return prevWord;
         }
+        return null;
     }
 
     public boolean isCursorTouchingWord() {
@@ -2136,6 +2136,7 @@
 
     // "ic" must not be null
     private void revertCommit(final InputConnection ic) {
+        final CharSequence previousWord = mLastComposedWord.mPrevWord;
         final String originallyTypedWord = mLastComposedWord.mTypedWord;
         final CharSequence committedWord = mLastComposedWord.mCommittedWord;
         final int cancelLength = committedWord.length();
@@ -2160,6 +2161,10 @@
         if (ProductionFlag.IS_EXPERIMENTAL) {
             ResearchLogger.latinIME_deleteSurroundingText(deleteLength);
         }
+        if (!TextUtils.isEmpty(previousWord) && !TextUtils.isEmpty(committedWord)) {
+            mUserHistoryDictionary.cancelAddingUserHistory(
+                    previousWord.toString(), committedWord.toString());
+        }
         if (0 == separatorLength || mLastComposedWord.didCommitTypedWord()) {
             // This is the case when we cancel a manual pick.
             // We should restart suggestion on the word right away.
@@ -2291,6 +2296,19 @@
                 break;
             }
         }
+
+        if (Keyboard.CODE_DELETE == primaryCode) {
+            // This is a stopgap solution to avoid leaving a high surrogate alone in a text view.
+            // In the future, we need to deprecate deteleSurroundingText() and have a surrogate
+            // pair-friendly way of deleting characters in InputConnection.
+            final InputConnection ic = getCurrentInputConnection();
+            if (null != ic) {
+                final CharSequence lastChar = ic.getTextBeforeCursor(1, 0);
+                if (!TextUtils.isEmpty(lastChar) && Character.isHighSurrogate(lastChar.charAt(0))) {
+                    ic.deleteSurroundingText(1, 0);
+                }
+            }
+        }
     }
 
     // receive ringer mode change and network state change.
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index 9e478fa..336a76f 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -26,9 +26,9 @@
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Locale;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * This class loads a dictionary and provides a list of suggestions for a given sequence of
@@ -68,10 +68,10 @@
     private boolean mHasMainDictionary;
     private Dictionary mContactsDict;
     private WhitelistDictionary mWhiteListDictionary;
-    private final HashMap<String, Dictionary> mUnigramDictionaries =
-            new HashMap<String, Dictionary>();
-    private final HashMap<String, Dictionary> mBigramDictionaries =
-            new HashMap<String, Dictionary>();
+    private final ConcurrentHashMap<String, Dictionary> mUnigramDictionaries =
+            new ConcurrentHashMap<String, Dictionary>();
+    private final ConcurrentHashMap<String, Dictionary> mBigramDictionaries =
+            new ConcurrentHashMap<String, Dictionary>();
 
     private int mPrefMaxSuggestions = 18;
 
@@ -117,8 +117,9 @@
         initWhitelistAndAutocorrectAndPool(context, locale);
     }
 
-    private static void addOrReplaceDictionary(HashMap<String, Dictionary> dictionaries, String key,
-            Dictionary dict) {
+    private static void addOrReplaceDictionary(
+            final ConcurrentHashMap<String, Dictionary> dictionaries,
+            final String key, final Dictionary dict) {
         final Dictionary oldDict = (dict == null)
                 ? dictionaries.remove(key)
                 : dictionaries.put(key, dict);
@@ -151,7 +152,7 @@
         return mContactsDict;
     }
 
-    public HashMap<String, Dictionary> getUnigramDictionaries() {
+    public ConcurrentHashMap<String, Dictionary> getUnigramDictionaries() {
         return mUnigramDictionaries;
     }
 
@@ -503,27 +504,6 @@
         return true;
     }
 
-    // TODO: Use codepoint instead of char
-    private int searchBigramSuggestion(final char[] word, final int offset, final int length) {
-        // TODO This is almost O(n^2). Might need fix.
-        // search whether the word appeared in bigram data
-        int bigramSuggestSize = mBigramSuggestions.size();
-        for (int i = 0; i < bigramSuggestSize; i++) {
-            if (mBigramSuggestions.get(i).codePointCount() == length) {
-                boolean chk = true;
-                for (int j = 0; j < length; j++) {
-                    if (mBigramSuggestions.get(i).codePointAt(j) != word[offset+j]) {
-                        chk = false;
-                        break;
-                    }
-                }
-                if (chk) return i;
-            }
-        }
-
-        return -1;
-    }
-
     public void close() {
         final HashSet<Dictionary> dictionaries = new HashSet<Dictionary>();
         dictionaries.addAll(mUnigramDictionaries.values());
diff --git a/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java b/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java
index e13602e..efafacc 100644
--- a/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserHistoryDictionary.java
@@ -202,6 +202,15 @@
         return freq;
     }
 
+    public boolean cancelAddingUserHistory(String word1, String word2) {
+        final Bigram bi = new Bigram(word1, word2, 0);
+        if (mPendingWrites.contains(bi)) {
+            mPendingWrites.remove(bi);
+            return super.removeBigram(word1, word2);
+        }
+        return false;
+    }
+
     /**
      * Schedules a background thread to write any pending words to the database.
      */
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index e27a546..ca9caa1 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -313,7 +313,7 @@
 
     // `type' should be one of the LastComposedWord.COMMIT_TYPE_* constants above.
     public LastComposedWord commitWord(final int type, final String committedWord,
-            final int separatorCode) {
+            final int separatorCode, final CharSequence prevWord) {
         // Note: currently, we come here whenever we commit a word. If it's a MANUAL_PICK
         // or a DECIDED_WORD we may cancel the commit later; otherwise, we should deactivate
         // the last composed word to ensure this does not happen.
@@ -324,7 +324,8 @@
         mXCoordinates = new int[N];
         mYCoordinates = new int[N];
         final LastComposedWord lastComposedWord = new LastComposedWord(primaryKeyCodes,
-                xCoordinates, yCoordinates, mTypedWord.toString(), committedWord, separatorCode);
+                xCoordinates, yCoordinates, mTypedWord.toString(), committedWord, separatorCode,
+                prevWord);
         if (type != LastComposedWord.COMMIT_TYPE_DECIDED_WORD
                 && type != LastComposedWord.COMMIT_TYPE_MANUAL_PICK) {
             lastComposedWord.deactivate();
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 9807d28..aa32501 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -102,13 +102,19 @@
         // will never have any suggestions, so it makes no sense checking them.
         mLanguageToScript = new TreeMap<String, Integer>();
         mLanguageToScript.put("en", SCRIPT_LATIN);
+        mLanguageToScript.put("en_US", SCRIPT_LATIN);
+        mLanguageToScript.put("en_GB", SCRIPT_LATIN);
         mLanguageToScript.put("fr", SCRIPT_LATIN);
         mLanguageToScript.put("de", SCRIPT_LATIN);
         mLanguageToScript.put("nl", SCRIPT_LATIN);
         mLanguageToScript.put("cs", SCRIPT_LATIN);
         mLanguageToScript.put("es", SCRIPT_LATIN);
         mLanguageToScript.put("it", SCRIPT_LATIN);
+        mLanguageToScript.put("hr", SCRIPT_LATIN);
+        mLanguageToScript.put("pt_BR", SCRIPT_LATIN);
         mLanguageToScript.put("ru", SCRIPT_CYRILLIC);
+        // TODO: Make a persian proximity, and activate the Farsi subtype.
+        // mLanguageToScript.put("fa", SCRIPT_PERSIAN);
     }
 
     @Override public void onCreate() {
@@ -669,6 +675,28 @@
             return retval;
         }
 
+        @Override
+        public SuggestionsInfo[] onGetSuggestionsMultiple(TextInfo[] textInfos,
+                int suggestionsLimit, boolean sequentialWords) {
+            final int length = textInfos.length;
+            final SuggestionsInfo[] retval = new SuggestionsInfo[length];
+            for (int i = 0; i < length; ++i) {
+                final String prevWord;
+                if (sequentialWords && i > 0) {
+                    final String prevWordCandidate = textInfos[i - 1].getText();
+                    // Note that an empty string would be used to indicate the initial word
+                    // in the future.
+                    prevWord = TextUtils.isEmpty(prevWordCandidate) ? null : prevWordCandidate;
+                } else {
+                    prevWord = null;
+                }
+                retval[i] = onGetSuggestions(textInfos[i], prevWord, suggestionsLimit);
+                retval[i].setCookieAndSequence(
+                        textInfos[i].getCookie(), textInfos[i].getSequence());
+            }
+            return retval;
+        }
+
         // Note : this must be reentrant
         /**
          * Gets a list of suggestions for a specific string. This returns a list of possible
@@ -678,6 +706,11 @@
         @Override
         public SuggestionsInfo onGetSuggestions(final TextInfo textInfo,
                 final int suggestionsLimit) {
+            return onGetSuggestions(textInfo, null, suggestionsLimit);
+        }
+
+        private SuggestionsInfo onGetSuggestions(
+                final TextInfo textInfo, final String prevWord, final int suggestionsLimit) {
             try {
                 final String inText = textInfo.getText();
                 final SuggestionsParams cachedSuggestionsParams =
@@ -732,7 +765,7 @@
                 try {
                     dictInfo = mDictionaryPool.takeOrGetNull();
                     if (null == dictInfo) return getNotInDictEmptySuggestions();
-                    dictInfo.mDictionary.getWords(composer, null, suggestionsGatherer,
+                    dictInfo.mDictionary.getWords(composer, prevWord, suggestionsGatherer,
                             dictInfo.mProximityInfo);
                     isInDict = dictInfo.mDictionary.isValidWord(text);
                     if (!isInDict && CAPITALIZE_NONE != capitalizeType) {
diff --git a/native/jni/Android.mk b/native/jni/Android.mk
index 5e0d351..d53757f 100644
--- a/native/jni/Android.mk
+++ b/native/jni/Android.mk
@@ -20,24 +20,6 @@
 #FLAG_DBG := true
 #FLAG_DO_PROFILE := true
 
-TARGETING_UNBUNDLED_FROYO := true
-
-ifeq ($(TARGET_ARCH), x86)
-    TARGETING_UNBUNDLED_FROYO := false
-endif
-
-ifeq ($(TARGET_ARCH), mips)
-    TARGETING_UNBUNDLED_FROYO := false
-endif
-
-ifeq ($(FLAG_DBG), true)
-    TARGETING_UNBUNDLED_FROYO := false
-endif
-
-ifeq ($(FLAG_DO_PROFILE), true)
-    TARGETING_UNBUNDLED_FROYO := false
-endif
-
 ######################################
 include $(CLEAR_VARS)
 
@@ -69,11 +51,6 @@
     $(LATIN_IME_JNI_SRC_FILES) \
     $(addprefix $(LATIN_IME_SRC_DIR)/,$(LATIN_IME_CORE_SRC_FILES))
 
-ifeq ($(TARGETING_UNBUNDLED_FROYO), true)
-    LOCAL_NDK_VERSION := 4
-    LOCAL_SDK_VERSION := 8
-endif
-
 ifeq ($(FLAG_DO_PROFILE), true)
     $(warning Making profiling version of native library)
     LOCAL_CFLAGS += -DFLAG_DO_PROFILE
@@ -117,11 +94,6 @@
 endif # FLAG_DBG
 endif # FLAG_DO_PROFILE
 
-ifeq ($(TARGETING_UNBUNDLED_FROYO), true)
-    LOCAL_NDK_VERSION := 4
-    LOCAL_SDK_VERSION := 8
-endif
-
 LOCAL_MODULE := libjni_latinime
 LOCAL_MODULE_TAGS := optional
 
diff --git a/native/jni/src/correction.cpp b/native/jni/src/correction.cpp
index 5ae34cd..f7ef7ef 100644
--- a/native/jni/src/correction.cpp
+++ b/native/jni/src/correction.cpp
@@ -55,6 +55,7 @@
             }
             AKLOGI("[ %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d ]",
                     c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[10]);
+            (void)c;
         }
     }
 }
@@ -977,7 +978,7 @@
             }
             const int freq = freqArray[i];
             // Demote too short weak words
-            if (wordLength <= 4 && freq <= MAX_FREQ * 2 / 3 /* heuristic... */) {
+            if (wordLength <= 4 && freq <= SUPPRESS_SHORT_MULTIPLE_WORDS_THRESHOLD_FREQ) {
                 multiplyRate(100 * freq / MAX_FREQ, &totalFreq);
             }
             if (wordLength == 1) {
diff --git a/native/jni/src/defines.h b/native/jni/src/defines.h
index dfc5238..19f8434 100644
--- a/native/jni/src/defines.h
+++ b/native/jni/src/defines.h
@@ -228,6 +228,8 @@
 
 #define TWO_WORDS_CORRECTION_WITH_OTHER_ERROR_THRESHOLD 0.35
 #define START_TWO_WORDS_CORRECTION_THRESHOLD 0.185
+/* heuristic... This should be changed if we change the unit of the frequency. */
+#define SUPPRESS_SHORT_MULTIPLE_WORDS_THRESHOLD_FREQ (MAX_FREQ * 58 / 100)
 
 #define MAX_DEPTH_MULTIPLIER 3
 
diff --git a/native/jni/src/unigram_dictionary.cpp b/native/jni/src/unigram_dictionary.cpp
index 3c826e9..8d2f4cd 100644
--- a/native/jni/src/unigram_dictionary.cpp
+++ b/native/jni/src/unigram_dictionary.cpp
@@ -222,6 +222,7 @@
             short unsigned int* w = outWords + j * MAX_WORD_LENGTH;
             char s[MAX_WORD_LENGTH];
             for (int i = 0; i <= MAX_WORD_LENGTH; i++) s[i] = w[i];
+            (void)s;
             AKLOGI("%s %i", s, frequencies[j]);
         }
     }
@@ -503,8 +504,12 @@
                 freqArray, wordLengthArray, currentWordIndex + 1, isSpaceProximity, outputWord);
         if (DEBUG_DICT) {
             DUMP_WORD(outputWord, tempOutputWordLength);
-            AKLOGI("Split two words: %d, %d, %d, %d, (%d) %d", freqArray[0], freqArray[1], pairFreq,
-                    inputLength, wordLengthArray[0], tempOutputWordLength);
+            for (int i = 0; i < currentWordIndex + 1; ++i) {
+                AKLOGI("Split %d,%d words: freq = %d, length = %d", i, currentWordIndex + 1,
+                        freqArray[i], wordLengthArray[i]);
+            }
+            AKLOGI("Split two words: freq = %d, length = %d, %d, isSpace ? %d", pairFreq,
+                    inputLength, tempOutputWordLength, isSpaceProximity);
         }
         addWord(outputWord, tempOutputWordLength, pairFreq, queuePool->getMasterQueue());
     }
diff --git a/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java b/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
index 81f744d..a9947c1 100644
--- a/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
+++ b/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
@@ -18,6 +18,9 @@
 
 import com.android.inputmethod.keyboard.Keyboard;
 
+import android.text.style.SuggestionSpan;
+import android.text.style.UnderlineSpan;
+
 public class BlueUnderlineTests extends InputTestsBase {
 
     public void testBlueUnderline() {
@@ -27,7 +30,7 @@
         type(STRING_TO_TYPE);
         sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
         runMessages();
-        final Span span = new Span(mTextView.getText());
+        final SpanGetter span = new SpanGetter(mTextView.getText(), SuggestionSpan.class);
         assertEquals("show blue underline, span start", EXPECTED_SPAN_START, span.mStart);
         assertEquals("show blue underline, span end", EXPECTED_SPAN_END, span.mEnd);
         assertEquals("show blue underline, span color", true, span.isAutoCorrectionIndicator());
@@ -44,7 +47,7 @@
         type(STRING_2_TO_TYPE);
         // We haven't have time to look into the dictionary yet, so the line should still be
         // blue to avoid any flicker.
-        final Span spanBefore = new Span(mTextView.getText());
+        final SpanGetter spanBefore = new SpanGetter(mTextView.getText(), SuggestionSpan.class);
         assertEquals("extend blue underline, span start", EXPECTED_SPAN_START, spanBefore.mStart);
         assertEquals("extend blue underline, span end", EXPECTED_SPAN_END, spanBefore.mEnd);
         assertEquals("extend blue underline, span color", true,
@@ -52,14 +55,15 @@
         sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
         runMessages();
         // Now we have been able to re-evaluate the word, there shouldn't be an auto-correction span
-        final Span spanAfter = new Span(mTextView.getText());
+        final SpanGetter spanAfter = new SpanGetter(mTextView.getText(), SuggestionSpan.class);
         assertNull("hide blue underline", spanAfter.mSpan);
     }
 
     public void testBlueUnderlineOnBackspace() {
         final String STRING_TO_TYPE = "tgis";
-        final int EXPECTED_SPAN_START = 0;
-        final int EXPECTED_SPAN_END = 4;
+        final int EXPECTED_SUGGESTION_SPAN_START = -1;
+        final int EXPECTED_UNDERLINE_SPAN_START = 0;
+        final int EXPECTED_UNDERLINE_SPAN_END = 4;
         type(STRING_TO_TYPE);
         sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
         runMessages();
@@ -72,13 +76,14 @@
         type(Keyboard.CODE_DELETE);
         sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
         runMessages();
-        final Span span = new Span(mTextView.getText());
-        assertEquals("show blue underline after backspace, span start",
-                EXPECTED_SPAN_START, span.mStart);
-        assertEquals("show blue underline after backspace, span end",
-                EXPECTED_SPAN_END, span.mEnd);
-        assertEquals("show blue underline after backspace, span color", true,
-                span.isAutoCorrectionIndicator());
+        final SpanGetter suggestionSpan = new SpanGetter(mTextView.getText(), SuggestionSpan.class);
+        assertEquals("show no blue underline after backspace, span start should be -1",
+                EXPECTED_SUGGESTION_SPAN_START, suggestionSpan.mStart);
+        final SpanGetter underlineSpan = new SpanGetter(mTextView.getText(), UnderlineSpan.class);
+        assertEquals("should be composing, so should have an underline span",
+                EXPECTED_UNDERLINE_SPAN_START, underlineSpan.mStart);
+        assertEquals("should be composing, so should have an underline span",
+                EXPECTED_UNDERLINE_SPAN_END, underlineSpan.mEnd);
     }
 
     public void testBlueUnderlineDisappearsWhenCursorMoved() {
@@ -96,7 +101,7 @@
         mLatinIME.onUpdateSelection(0, 0, NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1);
         sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
         runMessages();
-        final Span span = new Span(mTextView.getText());
+        final SpanGetter span = new SpanGetter(mTextView.getText(), SuggestionSpan.class);
         assertNull("blue underline removed when cursor is moved", span.mSpan);
     }
 }
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index 6c3cb16..f1ccfdd 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -28,7 +28,7 @@
 
     public void testPickSuggestionThenBackspace() {
         final String WORD_TO_TYPE = "this";
-        final String EXPECTED_RESULT = "this";
+        final String EXPECTED_RESULT = "thi";
         type(WORD_TO_TYPE);
         pickSuggestionManually(0, WORD_TO_TYPE);
         mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1);
@@ -40,7 +40,7 @@
     public void testPickAutoCorrectionThenBackspace() {
         final String WORD_TO_TYPE = "tgis";
         final String WORD_TO_PICK = "this";
-        final String EXPECTED_RESULT = "tgis";
+        final String EXPECTED_RESULT = "thi";
         type(WORD_TO_TYPE);
         // Choose the auto-correction, which is always in position 0. For "tgis", the
         // auto-correction should be "this".
@@ -55,7 +55,7 @@
 
     public void testPickTypedWordOverAutoCorrectionThenBackspace() {
         final String WORD_TO_TYPE = "tgis";
-        final String EXPECTED_RESULT = "tgis";
+        final String EXPECTED_RESULT = "tgi";
         type(WORD_TO_TYPE);
         // Choose the typed word, which should be in position 1 (because position 0 should
         // be occupied by the "this" auto-correction, as checked by testAutoCorrect())
@@ -71,7 +71,7 @@
     public void testPickDifferentSuggestionThenBackspace() {
         final String WORD_TO_TYPE = "tgis";
         final String WORD_TO_PICK = "thus";
-        final String EXPECTED_RESULT = "tgis";
+        final String EXPECTED_RESULT = "thu";
         type(WORD_TO_TYPE);
         // Choose the second suggestion, which should be in position 2 and should be "thus"
         // when "tgis is typed.
diff --git a/tests/src/com/android/inputmethod/latin/InputTestsBase.java b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
index c73a931..eb47fd5 100644
--- a/tests/src/com/android/inputmethod/latin/InputTestsBase.java
+++ b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
@@ -24,6 +24,7 @@
 import android.test.ServiceTestCase;
 import android.text.InputType;
 import android.text.SpannableStringBuilder;
+import android.text.style.CharacterStyle;
 import android.text.style.SuggestionSpan;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -57,18 +58,19 @@
             new HashMap<String, InputMethodSubtype>();
 
     // A helper class to ease span tests
-    public static class Span {
+    public static class SpanGetter {
         final SpannableStringBuilder mInputText;
-        final SuggestionSpan mSpan;
+        final CharacterStyle mSpan;
         final int mStart;
         final int mEnd;
         // The supplied CharSequence should be an instance of SpannableStringBuilder,
-        // and it should contain exactly zero or one SuggestionSpan. Otherwise, an exception
+        // and it should contain exactly zero or one span. Otherwise, an exception
         // is thrown.
-        public Span(final CharSequence inputText) {
+        public SpanGetter(final CharSequence inputText,
+                final Class<? extends CharacterStyle> spanType) {
             mInputText = (SpannableStringBuilder)inputText;
-            final SuggestionSpan[] spans =
-                    mInputText.getSpans(0, mInputText.length(), SuggestionSpan.class);
+            final CharacterStyle[] spans =
+                    mInputText.getSpans(0, mInputText.length(), spanType);
             if (0 == spans.length) {
                 mSpan = null;
                 mStart = -1;
@@ -78,11 +80,12 @@
                 mStart = mInputText.getSpanStart(mSpan);
                 mEnd = mInputText.getSpanEnd(mSpan);
             } else {
-                throw new RuntimeException("Expected one SuggestionSpan, found " + spans.length);
+                throw new RuntimeException("Expected one span, found " + spans.length);
             }
         }
         public boolean isAutoCorrectionIndicator() {
-            return 0 != (SuggestionSpan.FLAG_AUTO_CORRECTION & mSpan.getFlags());
+            return (mSpan instanceof SuggestionSpan) &&
+                    0 != (SuggestionSpan.FLAG_AUTO_CORRECTION & ((SuggestionSpan)mSpan).getFlags());
         }
     }
 
diff --git a/tools/makedict/Android.mk b/tools/makedict/Android.mk
index 2f0957a..7b5dee2 100644
--- a/tools/makedict/Android.mk
+++ b/tools/makedict/Android.mk
@@ -24,7 +24,6 @@
         $(filter-out $(addprefix %, $(LOCAL_TOOL_SRC_FILES)), $(LOCAL_MAIN_SRC_FILES))
 LOCAL_SRC_FILES += $(call all-java-files-under,tests)
 LOCAL_JAR_MANIFEST := etc/manifest.txt
-LOCAL_MODULE_TAGS := eng
 LOCAL_MODULE := makedict
 LOCAL_JAVA_LIBRARIES := junit
 
diff --git a/tools/makedict/etc/Android.mk b/tools/makedict/etc/Android.mk
index 96a90cb..1b7d7cf 100644
--- a/tools/makedict/etc/Android.mk
+++ b/tools/makedict/etc/Android.mk
@@ -15,7 +15,5 @@
 LOCAL_PATH := $(call my-dir)
 include $(CLEAR_VARS)
 
-LOCAL_MODULE_TAGS := eng
-
 LOCAL_PREBUILT_EXECUTABLES := makedict
 include $(BUILD_HOST_PREBUILT)
