diff --git a/res/values-sw600dp/dimensions.xml b/res/values-sw600dp/dimensions.xml
index 1dfb896..ed75f60 100644
--- a/res/values-sw600dp/dimensions.xml
+++ b/res/values-sw600dp/dimensions.xml
@@ -33,7 +33,7 @@
     <dimen name="qc_thumb_width">240dip</dimen>
     <dimen name="qc_thumb_height">160dip</dimen>
     <dimen name="qc_item_size">48dip</dimen>
-    <dimen name="suggest_item_padding">16dp</dimen>
+    <dimen name="suggest_item_padding">8dp</dimen>
     <dimen name="toolbar_height">48dip</dimen>
     <dimen name="tab_thumbnail_width">@dimen/qc_thumb_width</dimen>
     <dimen name="tab_thumbnail_height">@dimen/qc_thumb_height</dimen>
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index fbdf400..96ab864 100644
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -18,8 +18,10 @@
 
 import android.content.Context;
 import android.content.res.Configuration;
+import android.content.res.TypedArray;
 import android.database.DataSetObserver;
 import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Patterns;
@@ -41,6 +43,7 @@
 import com.android.browser.search.SearchEngine;
 import com.android.browser.search.SearchEngineInfo;
 import com.android.browser.search.SearchEngines;
+import com.android.internal.R;
 
 import java.util.List;
 
@@ -77,20 +80,27 @@
 
     private int mState;
     private StateListener mStateListener;
+    private Rect mPopupPadding;
 
     public UrlInputView(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
+        TypedArray a = context.obtainStyledAttributes(
+                attrs, com.android.internal.R.styleable.PopupWindow,
+                R.attr.autoCompleteTextViewStyle, 0);
+
+        Drawable popupbg = a.getDrawable(R.styleable.PopupWindow_popupBackground);
+        a.recycle();
+        mPopupPadding = new Rect();
+        popupbg.getPadding(mPopupPadding);
         init(context);
     }
 
     public UrlInputView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        init(context);
+        this(context, attrs, R.attr.autoCompleteTextViewStyle);
     }
 
     public UrlInputView(Context context) {
-        super(context);
-        init(context);
+        this(context, null);
     }
 
     private void init(Context ctx) {
@@ -233,11 +243,14 @@
 
     private void setupDropDown() {
         int width = mContainer != null ? mContainer.getWidth() : getWidth();
+        width += mPopupPadding.left + mPopupPadding.right;
         if (width != getDropDownWidth()) {
             setDropDownWidth(width);
         }
-        if (getLeft() != -getDropDownHorizontalOffset()) {
-            setDropDownHorizontalOffset(-getLeft());
+        int left = getLeft();
+        left += mPopupPadding.left;
+        if (left != -getDropDownHorizontalOffset()) {
+            setDropDownHorizontalOffset(-left);
         }
     }
 
