diff --git a/shell/ev-sidebar-thumbnails.c b/shell/ev-sidebar-thumbnails.c
index 594ebce..682274a 100644
--- a/shell/ev-sidebar-thumbnails.c
+++ b/shell/ev-sidebar-thumbnails.c
@@ -99,6 +99,10 @@ static void         thumbnail_job_completed_callback       (EvJobThumbnail
 							    EvSidebarThumbnails     *sidebar_thumbnails);
 static void         adjustment_changed_cb                  (EvSidebarThumbnails     *sidebar_thumbnails);
 
+static void         ev_sidebar_thumbnails_reload_cb        (GtkWidget *swindow,
+							    GtkAllocation *alloc,
+							    EvSidebarThumbnails *sidebar_thumbnails);
+
 G_DEFINE_TYPE_EXTENDED (EvSidebarThumbnails, 
                         ev_sidebar_thumbnails, 
                         GTK_TYPE_VBOX,
@@ -680,7 +684,7 @@ ev_sidebar_thumbnails_init (EvSidebarThumbnails *ev_sidebar_thumbnails)
 	priv->swindow = gtk_scrolled_window_new (NULL, NULL);
 
 	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->swindow),
-					GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+					GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
 	gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->swindow),
 					     GTK_SHADOW_IN);
 	priv->vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->swindow));
@@ -691,6 +695,10 @@ ev_sidebar_thumbnails_init (EvSidebarThumbnails *ev_sidebar_thumbnails)
 	g_signal_connect_swapped (priv->swindow, "size-allocate",
 				  G_CALLBACK (adjustment_changed_cb),
 				  ev_sidebar_thumbnails);
+	g_signal_connect (GTK_WIDGET(priv->swindow), "size-allocate",
+			  G_CALLBACK (ev_sidebar_thumbnails_reload_cb),
+			  ev_sidebar_thumbnails);
+
 	gtk_box_pack_start (GTK_BOX (ev_sidebar_thumbnails), priv->swindow, TRUE, TRUE, 0);
 
 	/* Put it all together */
@@ -744,6 +752,22 @@ refresh (EvSidebarThumbnails *sidebar_thumbnails)
 }
 
 static void
+ev_sidebar_thumbnails_set_icon_size(EvSidebarThumbnailsPrivate *priv)
+{
+        gint i, max_icon_width, icon_width;
+        max_icon_width = -1;
+
+        if (priv->icon_view) {
+                for(i = 0; i < (priv->size_cache->uniform ? 1 : priv->n_pages); i++){
+                        ev_thumbnails_size_cache_get_size(priv->size_cache, i, priv->rotation, &icon_width, NULL);
+                        if (icon_width >= max_icon_width) max_icon_width = icon_width;
+
+                };
+                gtk_icon_view_set_item_width(GTK_ICON_VIEW(priv->icon_view), max_icon_width + 10);
+        };
+}
+
+static void
 ev_sidebar_thumbnails_reload (EvSidebarThumbnails *sidebar_thumbnails)
 {
 	EvDocumentModel *model;
@@ -760,6 +784,8 @@ ev_sidebar_thumbnails_reload (EvSidebarThumbnails *sidebar_thumbnails)
 	ev_sidebar_thumbnails_clear_model (sidebar_thumbnails);
 	ev_sidebar_thumbnails_fill_model (sidebar_thumbnails);
 
+        ev_sidebar_thumbnails_set_icon_size(sidebar_thumbnails->priv);
+
 	/* Trigger a redraw */
 	sidebar_thumbnails->priv->start_page = -1;
 	sidebar_thumbnails->priv->end_page = -1;
@@ -769,6 +795,26 @@ ev_sidebar_thumbnails_reload (EvSidebarThumbnails *sidebar_thumbnails)
 }
 
 static void
+ev_sidebar_thumbnails_reload_cb (GtkWidget *swindow,
+				 GtkAllocation *alloc,
+				 EvSidebarThumbnails *sidebar_thumbnails)
+{
+	GtkWidget *hscrollbar;
+	if (sidebar_thumbnails->priv && sidebar_thumbnails->priv->icon_view) {
+
+		gtk_widget_size_allocate(GTK_WIDGET(sidebar_thumbnails->priv->icon_view),
+					 alloc);
+		hscrollbar = gtk_scrolled_window_get_hscrollbar(GTK_SCROLLED_WINDOW(swindow));
+
+		if (hscrollbar)
+			gtk_widget_hide(hscrollbar);
+
+		ev_sidebar_thumbnails_reload(sidebar_thumbnails);
+	};
+
+}
+
+static void
 ev_sidebar_thumbnails_rotation_changed_cb (EvDocumentModel     *model,
 					   GParamSpec          *pspec,
 					   EvSidebarThumbnails *sidebar_thumbnails)
@@ -859,6 +905,8 @@ ev_sidebar_thumbnails_document_changed_cb (EvDocumentModel     *model,
 		}
 	}
 
+        ev_sidebar_thumbnails_set_icon_size(priv);
+
 	/* Connect to the signal and trigger a fake callback */
 	g_signal_connect_swapped (priv->model, "page-changed",
 				  G_CALLBACK (page_changed_cb),
