Index: src/sj-play.c
===================================================================
--- src/sj-play.c	(revision 1953)
+++ src/sj-play.c	(working copy)
@@ -46,7 +46,7 @@
 
 static GtkTreeIter current_iter;
 
-static GtkWidget *play_button, *next_menuitem, *prev_menuitem, *reread_menuitem, *seek_scale, *volume_button, *statusbar;
+static GtkWidget *play_button, *next_menuitem, *prev_menuitem, *reread_menuitem, *seek_scale, *volume_button, *statusbar,  *track_listview;
 
 /**
  * Select track number.
@@ -182,6 +182,12 @@
         &current_iter, COLUMN_TITLE, &title, -1);
     sj_main_set_title (title);
     g_free (title);
+
+    /* Set the Treelist focus to the item to be extracted */
+    GtkTreePath* path = gtk_tree_model_get_path(GTK_TREE_MODEL (track_store), &current_iter); 
+    gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW (track_listview), path, NULL, TRUE, 0, 0);
+    gtk_tree_path_free(path);
+
     play ();
   }
 }
@@ -679,4 +685,5 @@
   seek_scale = glade_xml_get_widget (glade, "seek_scale");
   volume_button = glade_xml_get_widget (glade, "volume_button");
   statusbar = glade_xml_get_widget (glade, "status_bar");
+  track_listview = glade_xml_get_widget (glade, "track_listview");
 }
Index: src/sj-extracting.c
===================================================================
--- src/sj-extracting.c	(revision 1953)
+++ src/sj-extracting.c	(working copy)
@@ -397,6 +397,11 @@
     gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar),
                                    CLAMP ((float)current_duration / (float)total_duration, 0.0, 1.0));
 
+    /* Set the Treelist focus to the item to be extracted */
+    GtkTreePath* path = gtk_tree_model_get_path(GTK_TREE_MODEL (track_store), &current); 
+    gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW (track_listview), path, NULL, TRUE, 0, 0);
+    gtk_tree_path_free(path);
+
     /* Now actually do the extraction */
     sj_extractor_extract_track (extractor, track, file_path, &error);
     if (error) {
