diff --git a/plugins/audiocd/audiocd-ui.xml b/plugins/audiocd/audiocd-ui.xml
index f90439b..3e29135 100644
--- a/plugins/audiocd/audiocd-ui.xml
+++ b/plugins/audiocd/audiocd-ui.xml
@@ -1,6 +1,6 @@
 <ui>
   <popup name="AudioCdSourcePopup">
-    <menuitem name="AudioCdSourcePopupCopyAllTracks" action="RemovableSourceCopyAllTracks"/>
+    <menuitem name="AudioCdSourcePopupCopyAllTracks" action="AudioCdCopyTracks"/>
     <placeholder name="PluginPlaceholder"/>
     <menuitem name="AudioCdSourcePopupEjectCd" action="RemovableSourceEject"/>
   </popup>
diff --git a/plugins/audiocd/rb-audiocd-plugin.c b/plugins/audiocd/rb-audiocd-plugin.c
index 4366745..81535d4 100644
--- a/plugins/audiocd/rb-audiocd-plugin.c
+++ b/plugins/audiocd/rb-audiocd-plugin.c
@@ -253,7 +253,7 @@ create_source_cb (RBRemovableMediaManager *rmm,
 
 		volume = g_mount_get_volume (mount);
 		if (volume != NULL) {
-			source = RB_SOURCE (rb_audiocd_source_new (RB_PLUGIN (plugin), plugin->shell, volume));
+			source = rb_audiocd_source_new (RB_PLUGIN (plugin), plugin->shell, volume);
 			g_object_unref (volume);
 		}
 	}
diff --git a/plugins/audiocd/rb-audiocd-source.c b/plugins/audiocd/rb-audiocd-source.c
index 0eb961b..c1347e7 100644
--- a/plugins/audiocd/rb-audiocd-source.c
+++ b/plugins/audiocd/rb-audiocd-source.c
@@ -75,11 +75,6 @@ static GList* impl_get_ui_actions (RBSource *source);
 
 static void impl_pack_paned (RBBrowserSource *source, GtkWidget *paned);
 
-#ifdef HAVE_SJ_METADATA_GETTER
-static void rb_audiocd_source_cmd_reload_metadata (GtkAction *action,
-						   RBSource *source);
-#endif
-
 static gpointer rb_audiocd_load_songs (RBAudioCdSource *source);
 static void rb_audiocd_load_metadata (RBAudioCdSource *source, RhythmDB *db);
 static void rb_audiocd_load_metadata_cancel (RBAudioCdSource *source);
@@ -96,6 +91,27 @@ static gboolean update_disc_number_cb (GtkWidget *widget, GdkEventFocus *event,
 static void info_bar_response_cb (GtkInfoBar *info_bar, gint response_id, RBAudioCdSource *source);
 #endif
 
+#if defined(HAVE_SJ_METADATA_GETTER)
+static void reload_metadata_cmd (GtkAction *action, RBAudioCdSource *source);
+#endif
+static void copy_tracks_cmd (GtkAction *action, RBAudioCdSource *source);
+
+static void extract_cell_data_func (GtkTreeViewColumn *column,
+				    GtkCellRenderer *renderer,
+				    GtkTreeModel *model,
+				    GtkTreeIter *iter,
+				    RBAudioCdSource *source);
+static void extract_toggled_cb (GtkCellRendererToggle *renderer,
+				char *path,
+				RBAudioCdSource *source);
+static void extract_column_clicked_cb (GtkTreeViewColumn *column,
+				       RBAudioCdSource *source);
+
+typedef struct
+{
+	gboolean extract;
+} RBAudioCDEntryData;
+
 typedef struct
 {
 	gchar *device_path;
@@ -114,7 +130,6 @@ typedef struct
 	GtkWidget *disc_number_entry;
 
 #ifdef HAVE_SJ_METADATA_GETTER
-	GtkActionGroup *action_group;
 	SjMetadataGetter *metadata;
 
 	GtkWidget *info_bar;
@@ -122,6 +137,8 @@ typedef struct
 
 	char *submit_url;
 #endif
+
+	GtkActionGroup *action_group;
 } RBAudioCdSourcePrivate;
 
 RB_PLUGIN_DEFINE_TYPE (RBAudioCdSource, rb_audiocd_source, RB_TYPE_REMOVABLE_MEDIA_SOURCE)
@@ -129,14 +146,18 @@ RB_PLUGIN_DEFINE_TYPE (RBAudioCdSource, rb_audiocd_source, RB_TYPE_REMOVABLE_MED
 
 #ifdef HAVE_SJ_METADATA_GETTER
 static AlbumDetails* multiple_album_dialog (GList *albums, RBAudioCdSource *source);
+#endif
 
-static GtkActionEntry rb_audiocd_source_actions [] =
-{
+static GtkActionEntry rb_audiocd_source_actions[] = {
+	{ "AudioCdCopyTracks", GTK_STOCK_CDROM, N_("_Extract to Library"), NULL,
+	  N_("Copy tracks to the library"),
+	  G_CALLBACK (copy_tracks_cmd) },
+#if defined(HAVE_SJ_METADATA_GETTER)
 	{ "AudioCdSourceReloadMetadata", GTK_STOCK_REFRESH, N_("Reload"), NULL,
 	N_("Reload Album Information"),
-	G_CALLBACK (rb_audiocd_source_cmd_reload_metadata) },
-};
+	G_CALLBACK (reload_metadata_cmd) },
 #endif
+};
 
 static RhythmDB *
 get_db_for_source (RBAudioCdSource *source)
@@ -218,12 +239,10 @@ rb_audiocd_source_dispose (GObject *object)
 {
 	RBAudioCdSourcePrivate *priv = AUDIOCD_SOURCE_GET_PRIVATE (object);
 
-#ifdef HAVE_SJ_METADATA_GETTER
 	if (priv->action_group != NULL) {
 		g_object_unref (priv->action_group);
 		priv->action_group = NULL;
 	}
-#endif
 
 	if (priv->pipeline) {
 		gst_object_unref (GST_OBJECT (priv->pipeline));
@@ -239,9 +258,15 @@ rb_audiocd_source_constructed (GObject *object)
 	RBAudioCdSourcePrivate *priv;
 	RBAudioCdSource *source;
 	RBEntryView *entry_view;
+	GtkCellRenderer *renderer;
+	GtkTreeViewColumn *extract;
+	GtkWidget *widget;
+	GtkAction *action;
 	RhythmDB *db;
 	RBPlugin *plugin;
+	RBShell *shell;
 	char *ui_file;
+	int toggle_width;
 
 	RB_CHAIN_GOBJECT_METHOD (rb_audiocd_source_parent_class, constructed, object);
 	source = RB_AUDIOCD_SOURCE (object);
@@ -249,33 +274,66 @@ rb_audiocd_source_constructed (GObject *object)
 
 	g_object_set (G_OBJECT (source), "name", "Unknown Audio", NULL);
 
-#ifdef HAVE_SJ_METADATA_GETTER
-	{
-		RBShell *shell;
-		g_object_get (source, "shell", &shell, NULL);
-		priv->action_group =
-			_rb_source_register_action_group (RB_SOURCE (source),
-							  "AudiocdActions",
-							  NULL, 0, NULL);
-		_rb_action_group_add_source_actions (priv->action_group,
-						     G_OBJECT (shell),
-						     rb_audiocd_source_actions,
-						     G_N_ELEMENTS (rb_audiocd_source_actions));
-		g_object_unref (shell);
-	}
+	g_object_get (source, "shell", &shell, NULL);
+	priv->action_group = _rb_source_register_action_group (RB_SOURCE (source),
+							       "AudioCdActions",
+							       NULL, 0, NULL);
+	_rb_action_group_add_source_actions (priv->action_group,
+					     G_OBJECT (shell),
+					     rb_audiocd_source_actions,
+					     G_N_ELEMENTS (rb_audiocd_source_actions));
+	g_object_unref (shell);
+
+	action = gtk_action_group_get_action (priv->action_group,
+					      "AudioCdCopyTracks");
+	/* Translators: this is the toolbar button label
+	   for Copy to Library action. */
+	g_object_set (action, "short-label", _("Extract"), NULL);
+
+#if !defined(HAVE_SJ_METADATA_GETTER)
+	action = gtk_action_group_get_action (source->action_group, "AudioCdSourceReloadMetadata");
+	g_object_set (action, "visible", FALSE, NULL);
 #endif
+
+
 	/* we want audio cds to sort by track# by default */
 	entry_view = rb_source_get_entry_view (RB_SOURCE (source));
 	rb_entry_view_set_sorting_order (entry_view, "Track", GTK_SORT_ASCENDING);
 
-	/* hide the 'album' column */
-	gtk_tree_view_column_set_visible (rb_entry_view_get_column (entry_view, RB_ENTRY_VIEW_COL_ALBUM), FALSE);
-
 	/* enable in-place editing for titles, artists, and genres */
 	rb_entry_view_set_column_editable (entry_view, RB_ENTRY_VIEW_COL_TITLE, TRUE);
 	rb_entry_view_set_column_editable (entry_view, RB_ENTRY_VIEW_COL_ARTIST, TRUE);
 	rb_entry_view_set_column_editable (entry_view, RB_ENTRY_VIEW_COL_GENRE, TRUE);
 
+	/* create the 'extract' column */
+	renderer = gtk_cell_renderer_toggle_new ();
+	extract = gtk_tree_view_column_new ();
+	gtk_tree_view_column_pack_start (extract, renderer, FALSE);
+	gtk_tree_view_column_set_cell_data_func (extract,
+						 renderer,
+						 (GtkTreeCellDataFunc) extract_cell_data_func,
+						 source,
+						 NULL);
+	gtk_tree_view_column_set_clickable (extract, TRUE);
+	widget = gtk_check_button_new ();
+	g_object_set (widget, "active", TRUE, NULL);
+	gtk_widget_show_all (widget);
+	g_signal_connect_object (extract, "clicked", G_CALLBACK (extract_column_clicked_cb), source, 0);
+	gtk_tree_view_column_set_widget (extract, widget);
+
+	g_signal_connect_object (renderer, "toggled", G_CALLBACK (extract_toggled_cb), source, 0);
+
+	/* set column width */
+	gtk_cell_renderer_get_size (renderer, GTK_WIDGET (entry_view), NULL, NULL, NULL, &toggle_width, NULL);
+	gtk_tree_view_column_set_sizing (extract, GTK_TREE_VIEW_COLUMN_FIXED);
+	gtk_tree_view_column_set_fixed_width (extract, toggle_width + 5);
+
+	rb_entry_view_insert_column_custom (entry_view, extract, "", "Extract", NULL, NULL, NULL, 1);
+	gtk_widget_set_tooltip_text (GTK_WIDGET (extract->button), _("Select tracks to be extracted"));
+
+	/* hide the 'album' column */
+	gtk_tree_view_column_set_visible (rb_entry_view_get_column (entry_view, RB_ENTRY_VIEW_COL_ALBUM), FALSE);
+
 	/* handle extra metadata requests for album artist and album artist sortname */
 	db = get_db_for_source (source);
 	g_signal_connect_object (G_OBJECT (db), "entry-extra-metadata-request::" RHYTHMDB_PROP_ALBUM_ARTIST,
@@ -351,7 +409,7 @@ rb_audiocd_source_constructed (GObject *object)
 	g_thread_create ((GThreadFunc)rb_audiocd_load_songs, source, FALSE, NULL);
 }
 
-RBRemovableMediaSource *
+RBSource *
 rb_audiocd_source_new (RBPlugin *plugin,
 		       RBShell *shell,
 		       GVolume *volume)
@@ -375,6 +433,7 @@ rb_audiocd_source_new (RBPlugin *plugin,
 	entry_type->can_sync_metadata = (RhythmDBEntryCanSyncFunc)rb_true_function;
 	/* TODO save the metadata somewhere */
 	entry_type->sync_metadata = (RhythmDBEntrySyncFunc)rb_null_function;
+	entry_type->entry_type_data_size = sizeof(RBAudioCDEntryData);
 
 	source = g_object_new (RB_TYPE_AUDIOCD_SOURCE,
 			       "entry-type", entry_type,
@@ -387,7 +446,7 @@ rb_audiocd_source_new (RBPlugin *plugin,
 
 	rb_shell_register_entry_type_for_source (shell, RB_SOURCE (source), entry_type);
 
-	return RB_REMOVABLE_MEDIA_SOURCE (source);
+	return RB_SOURCE (source);
 }
 
 static void
@@ -465,6 +524,7 @@ rb_audiocd_create_track_entry (RBAudioCdSource *source,
 	GValue value = {0, };
 	gchar *str;
 	RhythmDBEntryType entry_type;
+	RBAudioCDEntryData *extra_data;
 
 	audio_path = g_strdup_printf ("cdda://%d#%s", track_number, priv->device_path);
 
@@ -512,6 +572,9 @@ rb_audiocd_create_track_entry (RBAudioCdSource *source,
 	entry_set_string_prop (db, entry, FALSE, RHYTHMDB_PROP_GENRE, NULL);
 	entry_set_string_prop (db, entry, FALSE, RHYTHMDB_PROP_MIMETYPE, "audio/x-raw-int");
 
+	extra_data = RHYTHMDB_ENTRY_GET_TYPE_DATA (entry, RBAudioCDEntryData);
+	extra_data->extract = TRUE;
+
 	rhythmdb_commit (db);
 	g_free (audio_path);
 
@@ -582,8 +645,9 @@ rb_audiocd_scan_songs (RBAudioCdSource *source,
 }
 
 #ifdef HAVE_SJ_METADATA_GETTER
+
 static void
-rb_audiocd_source_cmd_reload_metadata (GtkAction *action, RBSource *source)
+reload_metadata_cmd (GtkAction *action, RBAudioCdSource *source)
 {
 	RhythmDB *db;
 
@@ -1039,7 +1103,7 @@ impl_get_ui_actions (RBSource *source)
 {
 	GList *actions = NULL;
 
-	actions = g_list_prepend (actions, g_strdup ("RemovableSourceCopyAllTracks"));
+	actions = g_list_prepend (actions, g_strdup ("AudioCdCopyTracks"));
 	actions = g_list_prepend (actions, g_strdup ("RemovableSourceEject"));
 
 #ifdef HAVE_SJ_METADATA_GETTER
@@ -1251,3 +1315,135 @@ info_bar_response_cb (GtkInfoBar *info_bar, gint response_id, RBAudioCdSource *s
 }
 #endif
 
+static void
+extract_cell_data_func (GtkTreeViewColumn *column,
+			GtkCellRenderer *renderer,
+			GtkTreeModel *tree_model,
+			GtkTreeIter *iter,
+			RBAudioCdSource *source)
+{
+	RBAudioCDEntryData *extra_data;
+	RhythmDBEntry *entry;
+
+	entry = rhythmdb_query_model_iter_to_entry (RHYTHMDB_QUERY_MODEL (tree_model), iter);
+	if (entry != NULL) {
+		extra_data = RHYTHMDB_ENTRY_GET_TYPE_DATA (entry, RBAudioCDEntryData);
+		gtk_cell_renderer_toggle_set_active (GTK_CELL_RENDERER_TOGGLE (renderer), extra_data->extract);
+		rhythmdb_entry_unref (entry);
+	}
+}
+
+static void
+extract_toggled_cb (GtkCellRendererToggle *renderer, char *path_str, RBAudioCdSource *source)
+{
+	RhythmDBQueryModel *model;
+	GtkTreePath *path;
+	GtkTreeIter iter;
+
+	g_object_get (source, "query-model", &model, NULL);
+
+	path = gtk_tree_path_new_from_string (path_str);
+	if (gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, path)) {
+		RhythmDBEntry *entry;
+
+		entry = rhythmdb_query_model_iter_to_entry (model, &iter);
+		if (entry != NULL) {
+			RBAudioCDEntryData *extra_data;
+
+			extra_data = RHYTHMDB_ENTRY_GET_TYPE_DATA (entry, RBAudioCDEntryData);
+			extra_data->extract = !extra_data->extract;
+			rhythmdb_entry_unref (entry);
+
+			gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter);
+		}
+	}
+	gtk_tree_path_free (path);
+	g_object_unref (model);
+}
+
+static gboolean
+set_extract (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data)
+{
+	RBAudioCDEntryData *extra_data;
+	RhythmDBEntry *entry;
+
+	entry = rhythmdb_query_model_iter_to_entry (RHYTHMDB_QUERY_MODEL (model),
+						    iter);
+	if (entry != NULL) {
+		extra_data = RHYTHMDB_ENTRY_GET_TYPE_DATA (entry, RBAudioCDEntryData);
+		extra_data->extract = GPOINTER_TO_INT (data);
+
+		gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, iter);
+	}
+	return FALSE;
+}
+
+static void
+extract_column_clicked_cb (GtkTreeViewColumn *column, RBAudioCdSource *source)
+{
+	RhythmDBQueryModel *model;
+	gboolean extract;
+	GtkWidget *checkbox;
+
+	/* toggle the state of the checkbox in the header */
+	checkbox = gtk_tree_view_column_get_widget (column);
+
+	g_object_get (checkbox, "active", &extract, NULL);
+	extract = !extract;
+	g_object_set (checkbox, "active", extract, NULL);
+
+	/* set the extraction state for all tracks to match */
+	g_object_get (source, "query-model", &model, NULL);
+	gtk_tree_model_foreach (GTK_TREE_MODEL (model), set_extract, GINT_TO_POINTER (extract));
+	g_object_unref (model);
+}
+
+static gboolean
+copy_entry (RhythmDBQueryModel *model,
+	    GtkTreePath *path,
+	    GtkTreeIter *iter,
+	    GList **list)
+{
+	RBAudioCDEntryData *extra_data;
+	RhythmDBEntry *entry;
+	GList *l;
+
+	entry = rhythmdb_query_model_iter_to_entry (model, iter);
+	extra_data = RHYTHMDB_ENTRY_GET_TYPE_DATA (entry, RBAudioCDEntryData);
+	if (extra_data->extract) {
+		rb_debug ("adding track %s to transfer list",
+			  rhythmdb_entry_get_string (entry, RHYTHMDB_PROP_LOCATION));
+		l = g_list_append (*list, entry);
+		*list = l;
+	} else {
+		rb_debug ("skipping track %s",
+			  rhythmdb_entry_get_string (entry, RHYTHMDB_PROP_LOCATION));
+		rhythmdb_entry_unref (entry);
+	}
+	return FALSE;
+}
+
+static void
+copy_tracks_cmd (GtkAction *action, RBAudioCdSource *source)
+{
+	RBShell *shell;
+	RBSource *library;
+	RhythmDBQueryModel *model;
+	GList *list = NULL;
+
+	g_object_get (source, "shell", &shell, NULL);
+	g_object_get (shell, "library-source", &library, NULL);
+	g_object_unref (shell);
+
+	g_object_get (source, "query-model", &model, NULL);
+
+	gtk_tree_model_foreach (GTK_TREE_MODEL (model), (GtkTreeModelForeachFunc)copy_entry, &list);
+	if (list != NULL) {
+		rb_source_paste (library, list);
+		g_list_free (list);
+	}
+
+	g_object_unref (model);
+	g_object_unref (library);
+}
+
diff --git a/plugins/audiocd/rb-audiocd-source.h b/plugins/audiocd/rb-audiocd-source.h
index 67c260d..870d271 100644
--- a/plugins/audiocd/rb-audiocd-source.h
+++ b/plugins/audiocd/rb-audiocd-source.h
@@ -51,7 +51,7 @@ typedef struct
 	RBRemovableMediaSourceClass parent;
 } RBAudioCdSourceClass;
 
-RBRemovableMediaSource *	rb_audiocd_source_new		(RBPlugin *plugin,
+RBSource *		rb_audiocd_source_new			(RBPlugin *plugin,
 								 RBShell  *shell,
 								 GVolume  *volume);
 GType			rb_audiocd_source_get_type		(void);
diff --git a/shell/rb-removable-media-manager.c b/shell/rb-removable-media-manager.c
index a70825b..0785d45 100644
--- a/shell/rb-removable-media-manager.c
+++ b/shell/rb-removable-media-manager.c
@@ -98,8 +98,6 @@ static void uevent_cb (GUdevClient *client, const char *action, GUdevDevice *dev
 #endif
 
 static void do_transfer (RBRemovableMediaManager *manager);
-static void rb_removable_media_manager_cmd_copy_tracks (GtkAction *action,
-							RBRemovableMediaManager *mgr);
 
 typedef struct
 {
@@ -163,9 +161,6 @@ static GtkActionEntry rb_removable_media_manager_actions [] =
 	{ "RemovableSourceEject", GNOME_MEDIA_EJECT, N_("_Eject"), NULL,
 	  N_("Eject this medium"),
 	  G_CALLBACK (rb_removable_media_manager_cmd_eject_medium) },
-	{ "RemovableSourceCopyAllTracks", GTK_STOCK_CDROM, N_("_Extract to Library"), NULL,
-	  N_("Copy all tracks to the library"),
-	  G_CALLBACK (rb_removable_media_manager_cmd_copy_tracks) },
 	{ "MusicScanMedia", NULL, N_("_Scan Removable Media"), NULL,
 	  N_("Scan for new Removable Media"),
 	  G_CALLBACK (rb_removable_media_manager_cmd_scan_media) },
@@ -813,7 +808,6 @@ rb_removable_media_manager_set_uimanager (RBRemovableMediaManager *mgr,
 					  GtkUIManager *uimanager)
 {
 	RBRemovableMediaManagerPrivate *priv = GET_PRIVATE (mgr);
-	GtkAction *action;
 
 	if (priv->uimanager != NULL) {
 		if (priv->actiongroup != NULL) {
@@ -843,13 +837,6 @@ rb_removable_media_manager_set_uimanager (RBRemovableMediaManager *mgr,
 	gtk_ui_manager_insert_action_group (priv->uimanager,
 					    priv->actiongroup,
 					    0);
-
-	action = gtk_action_group_get_action (priv->actiongroup,
-					      "RemovableSourceCopyAllTracks");
-	/* Translators: this is the toolbar button label
-	   for Copy to Library action. */
-	g_object_set (G_OBJECT (action), "short-label", _("Extract"), NULL);
-
 }
 
 static void
@@ -1224,35 +1211,3 @@ rb_removable_media_manager_queue_transfer (RBRemovableMediaManager *manager,
 	do_transfer (manager);
 }
 
-static gboolean
-copy_entry (RhythmDBQueryModel *model,
-	    GtkTreePath *path,
-	    GtkTreeIter *iter,
-	    GList **list)
-{
-	GList *l;
-	l = g_list_append (*list, rhythmdb_query_model_iter_to_entry (model, iter));
-	*list = l;
-	return FALSE;
-}
-
-static void
-rb_removable_media_manager_cmd_copy_tracks (GtkAction *action, RBRemovableMediaManager *mgr)
-{
-	RBRemovableMediaManagerPrivate *priv = GET_PRIVATE (mgr);
-	RBRemovableMediaSource *source;
-	RBLibrarySource *library;
-	RhythmDBQueryModel *model;
-	GList *list = NULL;
-
-	source = RB_REMOVABLE_MEDIA_SOURCE (priv->selected_source);
-	g_object_get (source, "query-model", &model, NULL);
-	g_object_get (priv->shell, "library-source", &library, NULL);
-
-	gtk_tree_model_foreach (GTK_TREE_MODEL (model), (GtkTreeModelForeachFunc)copy_entry, &list);
-	rb_source_paste (RB_SOURCE (library), list);
-	g_list_free (list);
-
-	g_object_unref (model);
-	g_object_unref (library);
-}
diff --git a/widgets/rb-entry-view.c b/widgets/rb-entry-view.c
index 941e1b3..d9eb2ba 100644
--- a/widgets/rb-entry-view.c
+++ b/widgets/rb-entry-view.c
@@ -1733,9 +1733,6 @@ rb_entry_view_insert_column_custom (RBEntryView *view,
 	gtk_tree_view_column_set_title (column, title);
 	gtk_tree_view_column_set_reorderable (column, FALSE);
 
-	g_signal_connect_object (column, "clicked",
-				 G_CALLBACK (rb_entry_view_column_clicked_cb),
-				 view, 0);
 
 	g_object_set_data_full (G_OBJECT (column), "rb-entry-view-key",
 				g_strdup (key), g_free);
@@ -1750,6 +1747,10 @@ rb_entry_view_insert_column_custom (RBEntryView *view,
 		sortdata->data = data;
 		sortdata->data_destroy = data_destroy;
 		g_hash_table_insert (view->priv->column_sort_data_map, column, sortdata);
+
+		g_signal_connect_object (column, "clicked",
+					 G_CALLBACK (rb_entry_view_column_clicked_cb),
+					 view, 0);
 	}
 	g_hash_table_insert (view->priv->column_key_map, g_strdup (key), column);
 
