Index: sources/rb-source.c
===================================================================
--- sources/rb-source.c	(revision 4723)
+++ sources/rb-source.c	(working copy)
@@ -410,6 +410,15 @@
 	}
 }
 
+void
+rb_source_set_columns_expand (RBSource *source,
+			     gboolean expand)
+{
+	RBSourceClass *class = RB_SOURCE_GET_CLASS (source);
+	RBEntryView *entry_view = class->impl_get_entry_view (source);
+	rb_entry_view_set_columns_expand (entry_view, expand);
+}
+
 static void
 rb_source_set_query_model_internal (RBSource *source,
 				    RhythmDBQueryModel *model)
Index: sources/rb-source.h
===================================================================
--- sources/rb-source.h	(revision 4723)
+++ sources/rb-source.h	(working copy)
@@ -207,6 +207,9 @@
 void            rb_source_set_hidden_when_empty (RBSource *source,
                                                  gboolean  hidden);
 
+void		rb_source_set_columns_expand	(RBSource *source,
+						 gboolean expand);
+
 /* Protected methods, should only be used by objects inheriting from RBSource */
 void            _rb_source_show_popup           (RBSource *source,
 						 const char *ui_path);
Index: sources/rb-browser-source.c
===================================================================
--- sources/rb-browser-source.c	(revision 4723)
+++ sources/rb-browser-source.c	(working copy)
@@ -751,6 +751,8 @@
 		gtk_widget_hide (GTK_WIDGET (source->priv->browser));
 	}
 	g_free (browser_key);
+
+	rb_source_set_columns_expand (RB_SOURCE (source), FALSE);
 }
 
 static GList *
Index: shell/rb-shell.c
===================================================================
--- shell/rb-shell.c	(revision 4723)
+++ shell/rb-shell.c	(working copy)
@@ -1934,6 +1934,7 @@
 	/* show source */
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (shell->priv->notebook),
 				       gtk_notebook_page_num (GTK_NOTEBOOK (shell->priv->notebook), GTK_WIDGET (source)));
+	rb_source_set_columns_expand (RB_SOURCE (source), FALSE);
 
 	g_signal_handlers_block_by_func (G_OBJECT (shell->priv->sourcelist),
 					 G_CALLBACK (source_selected_cb),
Index: widgets/rb-entry-view.c
===================================================================
--- widgets/rb-entry-view.c	(revision 4723)
+++ widgets/rb-entry-view.c	(working copy)
@@ -1343,6 +1343,29 @@
 	g_list_free (columns);
 }
 
+void
+rb_entry_view_set_columns_expand (RBEntryView *view,
+				 gboolean expand)
+{
+	GList *columns = gtk_tree_view_get_columns (GTK_TREE_VIEW (view->priv->treeview));
+	GList *current = columns;
+	GtkTreeViewColumn *column;
+	while (current != NULL) {
+		column = GTK_TREE_VIEW_COLUMN (current->data);
+		if (gtk_tree_view_column_get_expand (column))
+		{
+			gint width = gtk_tree_view_column_get_width (column);
+			if (width > 0)
+			{
+				gtk_tree_view_column_set_fixed_width (column, width);
+				gtk_tree_view_column_set_expand (column, FALSE);
+			}
+		}
+		current = current->next;
+	}
+	g_list_free (columns);
+}
+
 static GObject *
 rb_entry_view_constructor (GType type,
 			   guint n_construct_properties,
Index: widgets/rb-entry-view.h
===================================================================
--- widgets/rb-entry-view.h	(revision 4723)
+++ widgets/rb-entry-view.h	(working copy)
@@ -126,6 +126,9 @@
 void		rb_entry_view_set_columns_clickable	(RBEntryView *view,
                                                          gboolean clickable);
 
+void		rb_entry_view_set_columns_expand	(RBEntryView *view,
+							 gboolean expand);
+
 void		rb_entry_view_set_model			(RBEntryView *view,
 							 RhythmDBQueryModel *model);
 
