Index: configure.in
===================================================================
RCS file: /cvs/gnome/nautilus-cd-burner/configure.in,v
retrieving revision 1.181
diff -u -p -r1.181 configure.in
--- configure.in	30 Jan 2006 19:38:23 -0000	1.181
+++ configure.in	12 Feb 2006 13:12:33 -0000
@@ -62,6 +62,7 @@ dnl Minimum versions of the libraries
 GNOME_VFS_REQUIRED=2.1.3.1
 GLIB_REQUIRED=2.6.0
 GTK_REQUIRED=2.5.4
+GCONF_REQUIRED=2.0.0
 LIBGLADE_REQUIRED=2.0.0
 LIBGNOME_REQUIRED=2.0.0
 EEL_REQUIRED=2.13.3
@@ -141,13 +142,14 @@ PKG_CHECK_MODULES(GUI,
  gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED dnl
  libglade-2.0 >= $LIBGLADE_REQUIRED dnl
  libgnomeui-2.0 >= $LIBGNOME_REQUIRED  dnl
+ gconf-2.0 >= $GCONF_REQUIRED dnl
  $HAL)
 
 PKG_CHECK_MODULES(EXTENSION,
  libnautilus-extension >= $NAUTILUS_REQUIRED eel-2.0 >= $EEL_REQUIRED)
 
 PKG_CHECK_MODULES(BURN,
-  glib-2.0 >= $GLIB_REQUIRED gtk+-2.0 >= $GTK_REQUIRED $HAL)
+  glib-2.0 >= $GLIB_REQUIRED gtk+-2.0 >= $GTK_REQUIRED gconf-2.0 >= $GCONF_REQUIRED $HAL)
 
 AC_CHECK_HEADERS(mntent.h sys/mnttab.h sys/vfstab.h sys/cdio.h)
 
Index: nautilus-burn-drive-selection.c
===================================================================
RCS file: /cvs/gnome/nautilus-cd-burner/nautilus-burn-drive-selection.c,v
retrieving revision 1.7
diff -u -p -r1.7 nautilus-burn-drive-selection.c
--- nautilus-burn-drive-selection.c	7 Nov 2005 17:57:10 -0000	1.7
+++ nautilus-burn-drive-selection.c	12 Feb 2006 13:12:33 -0000
@@ -35,9 +35,12 @@
 #include <gtk/gtkliststore.h>
 #include <gtk/gtkcelllayout.h>
 #include <gtk/gtkcellrenderertext.h>
+#include <gconf/gconf-client.h>
 
 #include "nautilus-burn-drive-selection.h"
 
+#define GCONF_RECORDER_DRIVE "/apps/nautilus-cd-burner/recorder_drive"
+
 /* Signals */
 enum {
 	DEVICE_CHANGED,
@@ -140,6 +143,7 @@ combo_device_changed (GtkComboBox *combo
 	NautilusBurnDriveSelection *selection = (NautilusBurnDriveSelection *) user_data;
 	NautilusBurnDrive          *drive;
 	int                         i;
+	GConfClient                *gc;
 
 	i = gtk_combo_box_get_active (GTK_COMBO_BOX (selection));
 	/* No selection */
@@ -152,6 +156,10 @@ combo_device_changed (GtkComboBox *combo
 	drive = get_drive (selection, i);
 	if (drive == NULL)
 		return;
+	
+	gc = gconf_client_get_default();
+	gconf_client_set_string(gc, GCONF_RECORDER_DRIVE, drive->display_name, NULL);
+	g_object_unref(gc);
 
 	g_signal_emit (G_OBJECT (selection),
 		       nautilus_burn_drive_selection_table_signals [DEVICE_CHANGED],
@@ -165,9 +173,15 @@ cdrom_combo_box (NautilusBurnDriveSelect
 {
 	GList             *l;
 	NautilusBurnDrive *cdrom;
+	GConfClient		  *gc;
+	gchar			  *recorder_drive;
 
 	selection->priv->cdroms = nautilus_burn_drive_get_list (show_recorders_only, show_file_image);
 
+	gc = gconf_client_get_default();	
+	recorder_drive = gconf_client_get_string(gc, GCONF_RECORDER_DRIVE, NULL);
+	g_object_unref(gc);
+	
 	for (l = selection->priv->cdroms; l != NULL; l = l->next) {
 		cdrom = l->data;
 
@@ -178,8 +192,12 @@ cdrom_combo_box (NautilusBurnDriveSelect
 		gtk_combo_box_append_text (GTK_COMBO_BOX (selection),
 					   cdrom->display_name
 					   ? cdrom->display_name : _("Unnamed CDROM"));
+		
+		if (strcmp(recorder_drive,cdrom->display_name) == 0) {
+			gtk_combo_box_set_active (GTK_COMBO_BOX (selection), 
+						(int) g_list_position(selection->priv->cdroms,l));
+		}
 	}
-	gtk_combo_box_set_active (GTK_COMBO_BOX (selection), 0);
 
 	if (selection->priv->cdroms == NULL) {
 		gtk_widget_set_sensitive (GTK_WIDGET (selection), FALSE);
@@ -279,16 +297,26 @@ nautilus_burn_drive_selection_set_have_f
 		gtk_widget_set_sensitive (GTK_WIDGET (selection), (selection->priv->cdroms != NULL));
 	} else {
 		gboolean activate = FALSE;
-
+		GConfClient        *gc;
+		gchar			   *recorder_drive;
+        
 		cdrom = nautilus_burn_drive_get_file_image ();
 		gtk_combo_box_append_text (GTK_COMBO_BOX (selection),
 					   cdrom->display_name);
 		if (selection->priv->cdroms == NULL)
 			activate = TRUE;
+
+		gc = gconf_client_get_default();	
+		recorder_drive=gconf_client_get_string(gc, GCONF_RECORDER_DRIVE, NULL);
+		g_object_unref(gc);
+		if (strcmp(recorder_drive,cdrom->display_name) == 0 ) 					
+				activate = TRUE;
+
 		selection->priv->cdroms = g_list_append (selection->priv->cdroms, cdrom);
 		gtk_widget_set_sensitive (GTK_WIDGET (selection), TRUE);
-		if (activate != FALSE)
-			gtk_combo_box_set_active (GTK_COMBO_BOX (selection), 0);
+		if (activate != FALSE) {
+			gtk_combo_box_set_active (GTK_COMBO_BOX (selection), (int) g_list_index(selection->priv->cdroms, cdrom));
+		}
 	}
 
 	selection->priv->have_file_image = have_file_image;
Index: nautilus-burn-drive-selection.h
===================================================================
RCS file: /cvs/gnome/nautilus-cd-burner/nautilus-burn-drive-selection.h,v
retrieving revision 1.3
diff -u -p -r1.3 nautilus-burn-drive-selection.h
--- nautilus-burn-drive-selection.h	7 Nov 2005 17:57:10 -0000	1.3
+++ nautilus-burn-drive-selection.h	12 Feb 2006 13:12:33 -0000
@@ -38,7 +38,7 @@ G_BEGIN_DECLS
 #define NAUTILUS_BURN_IS_DRIVE_SELECTION_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_BURN_TYPE_DRIVE_SELECTION))
 
 typedef struct NautilusBurnDriveSelectionPrivate NautilusBurnDriveSelectionPrivate;
-
+												 
 typedef struct {
 	GtkComboBox                        widget;
 	NautilusBurnDriveSelectionPrivate *priv;
Index: ncb.schemas.in
===================================================================
RCS file: /cvs/gnome/nautilus-cd-burner/ncb.schemas.in,v
retrieving revision 1.6
diff -u -p -r1.6 ncb.schemas.in
--- ncb.schemas.in	29 Jul 2004 22:17:21 -0000	1.6
+++ ncb.schemas.in	12 Feb 2006 13:12:33 -0000
@@ -1,5 +1,20 @@
 <gconfschemafile>
     <schemalist>    
+	   
+	  <schema>
+	    <key>/schemas/apps/nautilus-cd-burner/recorder_drive</key>
+	<applyto>/apps/nautilus-cd-burner/recorder_drive</applyto>
+	<owner>nautilus-cd-burner</owner>
+	<type>string</type>
+	<default></default>
+	<locale name="C">
+	  <short>Last used CD recorder device</short>
+	  <long>
+	    Last used CD recorder, leave blank
+	    to use the default system recoder device.
+	  </long>
+    </locale>
+      </schema>
 
       <schema>
         <key>/schemas/apps/nautilus-cd-burner/temp_iso_dir</key>
