diff --git a/res/layout/geolocation_permissions_prompt.xml b/res/layout/geolocation_permissions_prompt.xml
index 404637b..3d8e230 100755
--- a/res/layout/geolocation_permissions_prompt.xml
+++ b/res/layout/geolocation_permissions_prompt.xml
@@ -14,7 +14,6 @@
      limitations under the License.
 
      This is the layout for the Geolocation permissions prompt.
-     FIXME: Make this looks pretty.
 -->
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
@@ -28,6 +27,7 @@
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:background="@color/geolocation_permissions_prompt_background"
+        android:padding="6dip"
         android:visibility="gone">
 
         <!-- 'google.com wants to know your location' -->
@@ -35,7 +35,15 @@
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:textSize="14dip"
-            android:textColor="@color/white" />
+            android:textColor="@color/black" />
+
+        <!-- Checkbox -->
+        <CheckBox android:id="@+id/remember"
+            android:text="@string/geolocation_permissions_prompt_remember"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="14dip"
+            android:textColor="@color/black" />
 
         <!-- Buttons -->
         <LinearLayout
@@ -43,21 +51,15 @@
             android:layout_height="wrap_content">
             <Button android:id="@+id/share_button"
                 android:text="@string/geolocation_permissions_prompt_share"
-                android:layout_width="wrap_content"
+                android:layout_weight="1"
+                android:layout_width="0dip"
                 android:layout_height="wrap_content" />
             <Button android:id="@+id/dont_share_button"
                 android:text="@string/geolocation_permissions_prompt_dont_share"
-                android:layout_width="wrap_content"
+                android:layout_weight="1"
+                android:layout_width="0dip"
                 android:layout_height="wrap_content" />
         </LinearLayout>
 
-        <CheckBox android:id="@+id/remember"
-            android:text="@string/geolocation_permissions_prompt_remember"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:drawablePadding="10dip"
-            android:textSize="16dip"
-            android:textColor="@color/white" />
-
     </LinearLayout>
 </LinearLayout>
diff --git a/res/layout/tab.xml b/res/layout/tab.xml
index ea9cd1a..e6ec970 100755
--- a/res/layout/tab.xml
+++ b/res/layout/tab.xml
@@ -19,7 +19,8 @@
      Currently, the only such element is the Geolocation permissions prompt.
 -->
 
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
     android:fitsSystemWindows="true"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">
@@ -27,7 +28,8 @@
     <!-- Wrapper layout for the WebView, which must be in a FrameLayout. -->
     <FrameLayout android:id="@+id/webview_wrapper"
         android:layout_width="fill_parent"
-        android:layout_height="fill_parent" />
+        android:layout_height="0dip"
+        android:layout_weight="1" />
 
     <!-- Geolocation permissions prompt -->
     <com.android.browser.GeolocationPermissionsPrompt
@@ -35,4 +37,4 @@
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" />
 
-</FrameLayout>
+</LinearLayout>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index e8e134c..72f1355 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -34,6 +34,6 @@
     <color name="gray">#ffbbbbbb</color>
     <color name="dark_gray">#ff777777</color>
 
-    <color name="geolocation_permissions_prompt_background">#CC888888</color>
+    <color name="geolocation_permissions_prompt_background">#ffdddddd</color>
 </resources>
 
diff --git a/res/values/strings.xml b/res/values/strings.xml
index fad9133..8593535 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -736,10 +736,10 @@
 
     <!-- Geolocation -->
     <!-- Permissions prompt -->
-    <string name="geolocation_permissions_prompt_message"><xliff:g id="webpage" example="Google Maps">%s</xliff:g> wants to know your location</string>
-    <string name="geolocation_permissions_prompt_share">Share</string>
-    <string name="geolocation_permissions_prompt_dont_share">Don\'t share</string>
-    <string name="geolocation_permissions_prompt_remember">Remember</string>
+    <string name="geolocation_permissions_prompt_message"><xliff:g id="website origin" example="maps.google.com">%s</xliff:g> wants to know your location</string>
+    <string name="geolocation_permissions_prompt_share">Share location</string>
+    <string name="geolocation_permissions_prompt_dont_share">Decline</string>
+    <string name="geolocation_permissions_prompt_remember">Remember preference</string>
     <!-- Settings page, Advanced Settings -> Website settings -> <origin> -->
     <string name="geolocation_settings_page_title">Clear location access</string>
     <string name="geolocation_settings_page_summary_allowed">This site can currently access your location</string>
diff --git a/src/com/android/browser/GeolocationPermissionsPrompt.java b/src/com/android/browser/GeolocationPermissionsPrompt.java
index 16737fe..61005d5 100755
--- a/src/com/android/browser/GeolocationPermissionsPrompt.java
+++ b/src/com/android/browser/GeolocationPermissionsPrompt.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+import android.net.Uri;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -61,7 +62,8 @@
     public void show(String origin, GeolocationPermissions.Callback callback) {
         mOrigin = origin;
         mCallback = callback;
-        setMessage(mOrigin);
+        Uri uri = Uri.parse(mOrigin);
+        setMessage("http".equals(uri.getScheme()) ?  mOrigin.substring(7) : mOrigin);
         showDialog(true);
     }
 
