diff --git a/res/layout/history_item.xml b/res/layout/history_item.xml
index f6076a0..ad07280 100644
--- a/res/layout/history_item.xml
+++ b/res/layout/history_item.xml
@@ -19,7 +19,8 @@
         android:layout_height="wrap_content"
         android:minHeight="?android:attr/listPreferredItemHeight"
         android:orientation="horizontal"
-        android:paddingLeft="20dip"
+        android:paddingLeft="12dip"
+        android:paddingRight="8dip"
         >
     <ImageView android:id="@+id/favicon"
         android:layout_width="32dip"
@@ -33,7 +34,8 @@
             android:layout_weight="1"
             android:layout_height="wrap_content"
             android:orientation="vertical"
-            android:paddingLeft="16dip"
+            android:paddingLeft="8dip"
+            android:paddingRight="8dip"
             android:layout_gravity="center_vertical"
             >
         <TextView android:id="@+id/title"
@@ -42,8 +44,7 @@
                 android:layout_width="wrap_content" 
                 android:layout_height="wrap_content"
                 android:singleLine="true"
-                android:ellipsize="marquee"
-                android:marqueeRepeatLimit="marquee_forever"
+                android:ellipsize="end"
                 />
         <TextView android:id="@+id/url" 
                 android:textAppearance="?android:attr/textAppearanceSmall"
@@ -51,8 +52,7 @@
                 android:layout_width="wrap_content" 
                 android:layout_height="wrap_content"
                 android:singleLine="true"
-                android:ellipsize="marquee"
-                android:marqueeRepeatLimit="marquee_forever"
+                android:ellipsize="middle"
                 />
     </LinearLayout>
     <CheckBox android:id="@+id/star"
@@ -60,8 +60,8 @@
             android:layout_height="wrap_content"
             android:paddingTop="16dip"
             android:paddingBottom="16dip"
-            android:paddingRight="20dip"
-            android:paddingLeft="16dip"
+            android:paddingRight="8dip"
+            android:paddingLeft="8dip"
             android:focusable="false"
             android:button="@drawable/btn_checkbox_star"
             android:layout_gravity="center_vertical"
diff --git a/src/com/android/browser/BookmarkItem.java b/src/com/android/browser/BookmarkItem.java
index e7f37a5..85c1fff 100644
--- a/src/com/android/browser/BookmarkItem.java
+++ b/src/com/android/browser/BookmarkItem.java
@@ -20,15 +20,17 @@
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
+import android.view.ViewGroup;
+import android.widget.HorizontalScrollView;
 import android.widget.ImageView;
-import android.widget.LinearLayout;
 import android.widget.TextView;
 
 /**
  *  Custom layout for an item representing a bookmark in the browser.
  */
-class BookmarkItem extends LinearLayout {
+class BookmarkItem extends HorizontalScrollView {
 
     final static int MAX_TEXTVIEW_LEN = 80;
 
@@ -37,6 +39,7 @@
     protected ImageView   mImageView;
     protected String      mUrl;
     protected String      mTitle;
+    protected boolean mEnableScrolling = false;
 
     /**
      *  Instantiate a bookmark item, including a default favicon.
@@ -46,6 +49,8 @@
     BookmarkItem(Context context) {
         super(context);
 
+        setClickable(false);
+        setEnableScrolling(false);
         LayoutInflater factory = LayoutInflater.from(context);
         factory.inflate(R.layout.history_item, this);
         mTextView = (TextView) findViewById(R.id.title);
@@ -65,16 +70,6 @@
         item.mImageView.setImageDrawable(mImageView.getDrawable());
     }
 
-    public void startMarquee() {
-        mTextView.setSelected(true);
-        mUrlText.setSelected(true);
-    }
-
-    public void stopMarquee() {
-        mTextView.setSelected(false);
-        mUrlText.setSelected(false);
-    }
-
     /**
      * Return the name assigned to this bookmark item.
      */
@@ -82,13 +77,6 @@
         return mTitle;
     }
 
-    /**
-     * Return the TextView which holds the name of this bookmark item.
-     */
-    /* package */ TextView getNameTextView() {
-        return mTextView;
-    }
-
     /* package */ String getUrl() {
         return mUrl;
     }
@@ -141,10 +129,67 @@
 
         mUrl = url;
 
+        url = UrlUtils.stripUrl(url);
         if (url.length() > MAX_TEXTVIEW_LEN) {
             url = url.substring(0, MAX_TEXTVIEW_LEN);
         }
 
         mUrlText.setText(url);
     }
+
+    void setEnableScrolling(boolean enable) {
+        mEnableScrolling = enable;
+        setFocusable(mEnableScrolling);
+        setFocusableInTouchMode(mEnableScrolling);
+        requestDisallowInterceptTouchEvent(!mEnableScrolling);
+        requestLayout();
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent ev) {
+        if (mEnableScrolling) {
+            return super.onTouchEvent(ev);
+        }
+        return false;
+    }
+
+    @Override
+    protected void measureChild(View child, int parentWidthMeasureSpec,
+            int parentHeightMeasureSpec) {
+        if (mEnableScrolling) {
+            super.measureChild(child, parentWidthMeasureSpec, parentHeightMeasureSpec);
+            return;
+        }
+
+        final ViewGroup.LayoutParams lp = child.getLayoutParams();
+
+        final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec,
+                mPaddingLeft + mPaddingRight, lp.width);
+        final int childHeightMeasureSpec = getChildMeasureSpec(parentHeightMeasureSpec,
+                mPaddingTop + mPaddingBottom, lp.height);
+
+        child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
+    }
+
+    @Override
+    protected void measureChildWithMargins(View child,
+            int parentWidthMeasureSpec, int widthUsed,
+            int parentHeightMeasureSpec, int heightUsed) {
+        if (mEnableScrolling) {
+            super.measureChildWithMargins(child, parentWidthMeasureSpec,
+                    widthUsed, parentHeightMeasureSpec, heightUsed);
+            return;
+        }
+
+        final MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams();
+
+        final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec,
+                mPaddingLeft + mPaddingRight + lp.leftMargin + lp.rightMargin
+                        + widthUsed, lp.width);
+        final int childHeightMeasureSpec = getChildMeasureSpec(parentHeightMeasureSpec,
+                mPaddingTop + mPaddingBottom + lp.topMargin + lp.bottomMargin
+                        + heightUsed, lp.height);
+
+        child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
+    }
 }
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index e2447e8..27f6ef8 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -274,6 +274,7 @@
             }
         }
         BookmarkItem header = new BookmarkItem(activity);
+        header.setEnableScrolling(true);
         populateBookmarkItem(cursor, header, isFolder);
         menu.setHeaderView(header);
 
diff --git a/src/com/android/browser/BrowserHistoryPage.java b/src/com/android/browser/BrowserHistoryPage.java
index 09c6f97..8461d77 100644
--- a/src/com/android/browser/BrowserHistoryPage.java
+++ b/src/com/android/browser/BrowserHistoryPage.java
@@ -357,6 +357,7 @@
         // Setup the header
         if (mContextHeader == null) {
             mContextHeader = new HistoryItem(parent, false);
+            mContextHeader.setEnableScrolling(true);
         } else if (mContextHeader.getParent() != null) {
             ((ViewGroup) mContextHeader.getParent()).removeView(mContextHeader);
         }
@@ -641,7 +642,6 @@
                         item.getPaddingRight(),
                         item.getPaddingBottom());
                 item.setFaviconBackground(mFaviconBackground);
-                item.startMarquee();
             } else {
                 item = (HistoryItem) convertView;
             }
diff --git a/src/com/android/browser/BrowserSnapshotPage.java b/src/com/android/browser/BrowserSnapshotPage.java
index 72aa1b9..22c2cb2 100644
--- a/src/com/android/browser/BrowserSnapshotPage.java
+++ b/src/com/android/browser/BrowserSnapshotPage.java
@@ -148,6 +148,7 @@
         inflater.inflate(R.menu.snapshots_context, menu);
         // Create the header, re-use BookmarkItem (has the layout we want)
         BookmarkItem header = new BookmarkItem(getActivity());
+        header.setEnableScrolling(true);
         AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
         populateBookmarkItem(mAdapter.getItem(info.position), header);
         menu.setHeaderView(header);
