Index: shell/ev-sidebar.c
===================================================================
--- shell/ev-sidebar.c	(revision 2934)
+++ shell/ev-sidebar.c	(working copy)
@@ -84,13 +84,31 @@ static void
 ev_sidebar_select_page (EvSidebar *ev_sidebar,  GtkTreeIter *iter)
 {
 	char *title;
-	int index;
+	int index, old_index;
 
 	gtk_tree_model_get (ev_sidebar->priv->page_model, iter,
 			    PAGE_COLUMN_TITLE, &title, 
 			    PAGE_COLUMN_NOTEBOOK_INDEX, &index,
 			    -1);
 
+        old_index = gtk_notebook_get_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook));
+
+        if (old_index != index)
+        {
+                GtkWidget *w;
+
+                if (old_index >= 0)
+                {
+                        w = gtk_notebook_get_nth_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook),
+                                                       old_index);
+                        gtk_widget_hide (w);
+                }
+
+                w = gtk_notebook_get_nth_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook),
+                                               index);
+                gtk_widget_show (w);
+        }
+
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (ev_sidebar->priv->notebook), index);
 	gtk_label_set_text (GTK_LABEL (ev_sidebar->priv->label), title);
 
