diff --git a/src/com/android/browser/BrowserBookmarksAdapter.java b/src/com/android/browser/BrowserBookmarksAdapter.java
index b3f8d98..2fd880c 100644
--- a/src/com/android/browser/BrowserBookmarksAdapter.java
+++ b/src/com/android/browser/BrowserBookmarksAdapter.java
@@ -25,6 +25,7 @@
 import android.view.ViewGroup;
 import android.widget.CursorAdapter;
 import android.widget.ImageView;
+import android.widget.ImageView.ScaleType;
 import android.widget.TextView;
 
 public class BrowserBookmarksAdapter extends CursorAdapter {
@@ -65,6 +66,7 @@
         if (cursor.getInt(BookmarksLoader.COLUMN_INDEX_IS_FOLDER) != 0) {
             // folder
             thumb.setImageResource(R.drawable.thumb_bookmark_widget_folder_holo);
+            thumb.setScaleType(ScaleType.FIT_END);
             thumb.setBackgroundDrawable(null);
         } else {
             byte[] thumbData = cursor.getBlob(BookmarksLoader.COLUMN_INDEX_THUMBNAIL);
@@ -73,6 +75,7 @@
                 thumbBitmap = BitmapFactory.decodeByteArray(thumbData, 0, thumbData.length);
             }
 
+            thumb.setScaleType(ScaleType.CENTER_CROP);
             if (thumbBitmap == null) {
                 thumb.setImageResource(R.drawable.browser_thumbnail);
             } else {
diff --git a/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
index 586f46d..209faad 100644
--- a/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
+++ b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
@@ -223,8 +223,15 @@
             String url = mBookmarks.getString(BOOKMARK_INDEX_URL);
             boolean isFolder = mBookmarks.getInt(BOOKMARK_INDEX_IS_FOLDER) != 0;
 
-            RemoteViews views = new RemoteViews(
-                    mContext.getPackageName(), R.layout.bookmarkthumbnailwidget_item);
+            RemoteViews views;
+            // Two layouts are needed because of b/5387153
+            if (isFolder) {
+                views = new RemoteViews(mContext.getPackageName(),
+                        R.layout.bookmarkthumbnailwidget_item_folder);
+            } else {
+                views = new RemoteViews(mContext.getPackageName(),
+                        R.layout.bookmarkthumbnailwidget_item);
+            }
             // Set the title of the bookmark. Use the url as a backup.
             String displayTitle = title;
             if (TextUtils.isEmpty(displayTitle)) {
@@ -286,7 +293,7 @@
 
         @Override
         public int getViewTypeCount() {
-            return 1;
+            return 2;
         }
 
         @Override
