diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 29928eb..ee434c0 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -110,7 +110,6 @@
                 <action android:name= "com.android.internal.stk.session_end" />
                 <action android:name= "com.android.internal.stk.icc_status_change" />
                 <action android:name= "com.android.internal.stk.alpha_notify" />
-                <action android:name= "android.intent.action.LOCALE_CHANGED" />
             </intent-filter>
         </receiver>
 
diff --git a/res/layout/stk_input.xml b/res/layout/stk_input.xml
index c2a34aa..7f8f96d 100644
--- a/res/layout/stk_input.xml
+++ b/res/layout/stk_input.xml
@@ -52,7 +52,6 @@
                 android:layout_height="wrap_content"
                 android:textAppearance="?android:attr/textAppearanceMedium"
                 android:textColor="?android:attr/textColorPrimary"
-                android:gravity="center_horizontal"
                 android:paddingBottom="30dip" />
             <LinearLayout
                 android:layout_width="match_parent"
@@ -62,18 +61,16 @@
                     android:visibility="visible"
                     android:orientation="vertical"
                     android:layout_width="match_parent"
-                    android:layout_marginLeft="10dip"
-                    android:layout_marginRight="10dip"
                     android:layout_height="wrap_content">
                     <LinearLayout
                         android:id="@+id/input_restriction_info"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_marginLeft="4dip"
-                        android:orientation="horizontal">
+                        android:orientation="vertical">
                         <TextView
                             android:id="@+id/input_type"
-                            android:gravity="left"
+                            android:gravity="start"
                             android:textAppearance="?android:attr/textAppearanceMedium"
                             android:textColor="?android:attr/textColorSecondary"
                             android:layout_width="wrap_content"
@@ -83,29 +80,35 @@
                             android:textAppearance="?android:attr/textAppearanceMedium"
                             android:textColor="?android:attr/textColorSecondary"
                             android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginLeft="4dip" />
+                            android:layout_height="wrap_content" />
                     </LinearLayout>
                     <EditText
                         android:id="@+id/in_text"
                         android:layout_gravity="center_horizontal"
-                        android:layout_marginBottom="20dip"
+                        android:layout_marginBottom="16dip"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content" />
                     <LinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:gravity="end"
+                        android:layout_marginStart="4dip"
+                        android:layout_marginBottom="16dip"
                         android:orientation="horizontal">
                         <Button
                             android:id="@+id/button_cancel"
-                            android:layout_height="wrap_content"
+                            android:layout_height="48dip"
                             android:layout_width="wrap_content"
+                            android:layout_weight="1"
+                            android:gravity="center_vertical"
+                            android:paddingStart="0dip"
+                            style="@android:style/Widget.Material.Button.Borderless.Colored"
                             android:text="@string/button_cancel" />
                         <Button
                             android:id="@+id/button_ok"
-                            android:layout_height="wrap_content"
+                            android:layout_height="48dip"
                             android:layout_width="wrap_content"
+                            style="@android:style/Widget.Material.Button.Colored"
                             android:text="@string/button_ok" />
                     </LinearLayout>
                 </LinearLayout>
@@ -120,11 +123,13 @@
                         android:id="@+id/button_no"
                         android:layout_height="wrap_content"
                         android:layout_width="wrap_content"
+                        style="@android:style/Widget.Material.Button.Borderless.Colored"
                         android:text="@string/button_no" />
                     <Button
                         android:id="@+id/button_yes"
                         android:layout_height="wrap_content"
                         android:layout_width="wrap_content"
+                        style="@android:style/Widget.Material.Button.Colored"
                         android:text="@string/button_yes" />
                 </LinearLayout>
             </LinearLayout>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
deleted file mode 100644
index e827784..0000000
--- a/res/values-or/strings.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="8396461461738434341">"SIM ଟୁଲକିଟ୍‌"</string>
-    <string name="menu_end_session" msgid="7368541737750982217">"ସେସନ୍‍ ସମାପ୍ତ କରନ୍ତୁ"</string>
-    <string name="help" msgid="9209980881219397319">"ସହାୟତା"</string>
-    <string name="menu_back" msgid="301227740977453364">"ପଛକୁ"</string>
-    <string name="service_name" msgid="6860303747999592491">"ସେବାର ନାମ"</string>
-    <string name="stk_no_service" msgid="5427773116839809131">"କୌଣସି ସେବା ଉପଲବ୍ଧ ନାହିଁ"</string>
-    <string name="button_ok" msgid="5760722312558549555">"ଠିକ୍‌ ଅଛି"</string>
-    <string name="button_cancel" msgid="1997847915560800261">"କ୍ୟାନ୍ସଲ୍‍ କରନ୍ତୁ"</string>
-    <string name="button_yes" msgid="624420260648337203">"ହଁ"</string>
-    <string name="button_no" msgid="1824959157582605627">"ନା"</string>
-    <string name="alphabet" msgid="1583185545938805861">"ଅକ୍ଷର"</string>
-    <string name="digits" msgid="1746796679021682388">"ସଂଖ୍ୟା (0-9, *, #, +)"</string>
-    <string name="default_call_setup_msg" msgid="7960194995759849940">"କଲ୍‌ ଚାଲୁଛି…"</string>
-    <string name="default_setup_call_msg" msgid="6126904475461162162">"କଲ୍‌ ସେଟଅପ୍‌ ହେଉଛି"</string>
-    <string name="stk_app_state" msgid="18582277302584082">"ଆପ୍ଲିକେଶନ୍‌ର ସ୍ଥିତି"</string>
-    <string name="enable_app" msgid="3701224550936728203">"ଚାଲୁ ହୋଇଛି"</string>
-    <string name="disable_app" msgid="6725081975611415214">"ବନ୍ଦ ହୋଇଛି"</string>
-    <string name="stk_dialog_title" msgid="6954825385456886726">"SIM ଟୁଲକିଟ୍‌"</string>
-    <string name="default_tone_dialog_msg" msgid="4595366992944391641">"ଟୋନ୍‌ ବଜାଯାଉଛି"</string>
-    <string name="default_open_channel_msg" msgid="2216070254100295924">"ଚ୍ୟାନେଲ୍‌ ଖୋଲିବେ?"</string>
-    <string name="default_send_data_msg" msgid="6011219698689931272">"ଡାଟା ପଠାଯାଉଛି"</string>
-    <string name="default_receive_data_msg" msgid="618096941772010682">"ଡାଟା ପ୍ରାପ୍ତ କରୁଛି"</string>
-    <string name="default_close_channel_msg" msgid="765364262263839824">"ଚ୍ୟାନେଲ୍‌ ବନ୍ଦ ଅଛି"</string>
-    <string name="stk_dialog_accept" msgid="8498901537508923727">"ହଁ"</string>
-    <string name="stk_dialog_reject" msgid="921848059485746796">"ନା"</string>
-    <string name="no_sim_card_inserted" msgid="5316620398365235988">"SIM ଟୁଲକିଟ୍‌ ଲଞ୍ଚ କରିବାଲାଗି ଦୟାକରି SIM କାର୍ଡ ଭର୍ତ୍ତି କରନ୍ତୁ"</string>
-    <string name="stk_channel_name" msgid="8828587788561382056">"ମୋବାଇଲ୍‍ ସେବା ମେସେଜ୍‌"</string>
-</resources>
diff --git a/src/com/android/stk/StkAppService.java b/src/com/android/stk/StkAppService.java
index c7f897e..c010185 100644
--- a/src/com/android/stk/StkAppService.java
+++ b/src/com/android/stk/StkAppService.java
@@ -176,6 +176,7 @@
     private StkContext[] mStkContext = null;
     private int mSimCount = 0;
     private IProcessObserver.Stub mProcessObserver = null;
+    private BroadcastReceiver mLocaleChangeReceiver = null;
     private TonePlayer mTonePlayer = null;
     private Vibrator mVibrator = null;
     private BroadcastReceiver mUserActivityReceiver = null;
@@ -400,6 +401,7 @@
         CatLog.d(LOG_TAG, "onDestroy()");
         unregisterUserActivityReceiver();
         unregisterProcessObserver();
+        unregisterLocaleChangeReceiver();
         sInstance = null;
         waitForLooper();
         mServiceLooper.quit();
@@ -1662,6 +1664,18 @@
     }
 
     private void unregisterEvent(int event, int slotId) {
+        for (int slot = PhoneConstants.SIM_ID_1; slot < mSimCount; slot++) {
+            if (slot != slotId) {
+                if (mStkContext[slot].mSetupEventListSettings != null) {
+                    if (findEvent(event, mStkContext[slot].mSetupEventListSettings.eventList)) {
+                        // The specified event shall never be canceled
+                        // if there is any other SIM card which requests the event.
+                        return;
+                    }
+                }
+            }
+        }
+
         switch (event) {
             case USER_ACTIVITY_EVENT:
                 unregisterUserActivityReceiver();
@@ -1670,6 +1684,8 @@
                 unregisterProcessObserver(AppInterface.CommandType.SET_UP_EVENT_LIST, slotId);
                 break;
             case LANGUAGE_SELECTION_EVENT:
+                unregisterLocaleChangeReceiver();
+                break;
             default:
                 break;
         }
@@ -1688,6 +1704,8 @@
                     registerProcessObserver();
                     break;
                 case LANGUAGE_SELECTION_EVENT:
+                    registerLocaleChangeReceiver();
+                    break;
                 default:
                     break;
             }
@@ -1789,6 +1807,28 @@
         }
     }
 
+    private synchronized void registerLocaleChangeReceiver() {
+        if (mLocaleChangeReceiver == null) {
+            mLocaleChangeReceiver = new BroadcastReceiver() {
+                @Override public void onReceive(Context context, Intent intent) {
+                    if (Intent.ACTION_LOCALE_CHANGED.equals(intent.getAction())) {
+                        Message message = mServiceHandler.obtainMessage();
+                        message.arg1 = OP_LOCALE_CHANGED;
+                        mServiceHandler.sendMessage(message);
+                    }
+                }
+            };
+            registerReceiver(mLocaleChangeReceiver, new IntentFilter(Intent.ACTION_LOCALE_CHANGED));
+        }
+    }
+
+    private synchronized void unregisterLocaleChangeReceiver() {
+        if (mLocaleChangeReceiver != null) {
+            unregisterReceiver(mLocaleChangeReceiver);
+            mLocaleChangeReceiver = null;
+        }
+    }
+
     private void sendSetUpEventResponse(int event, byte[] addedInfo, int slotId) {
         CatLog.d(this, "sendSetUpEventResponse: event : " + event + "slotId = " + slotId);
 
diff --git a/src/com/android/stk/StkCmdReceiver.java b/src/com/android/stk/StkCmdReceiver.java
index d011eee..aeb4e22 100644
--- a/src/com/android/stk/StkCmdReceiver.java
+++ b/src/com/android/stk/StkCmdReceiver.java
@@ -45,8 +45,6 @@
             handleAction(context, intent, StkAppService.OP_END_SESSION);
         } else if (action.equals(AppInterface.CAT_ICC_STATUS_CHANGE)) {
             handleAction(context, intent, StkAppService.OP_CARD_STATUS_CHANGED);
-        } else if (action.equals(Intent.ACTION_LOCALE_CHANGED)) {
-            handleLocaleChange(context);
         } else if (action.equals(AppInterface.CAT_ALPHA_NOTIFY_ACTION)) {
             handleAction(context, intent, StkAppService.OP_ALPHA_NOTIFY);
         }
@@ -86,11 +84,4 @@
         toService.putExtras(args);
         context.startService(toService);
     }
-
-    private void handleLocaleChange(Context context) {
-        Bundle args = new Bundle();
-        args.putInt(StkAppService.OPCODE, StkAppService.OP_LOCALE_CHANGED);
-        context.startService(new Intent(context, StkAppService.class)
-                .putExtras(args));
-    }
 }
