943ca97
diff -ur gnome-keyring-2.20.orig/daemon/gkr-daemon-ops.c gnome-keyring-2.20/daemon/gkr-daemon-ops.c
943ca97
--- gnome-keyring-2.20.orig/daemon/gkr-daemon-ops.c	2007-10-03 15:01:34.000000000 +0200
943ca97
+++ gnome-keyring-2.20/daemon/gkr-daemon-ops.c	2007-10-03 15:01:48.000000000 +0200
943ca97
@@ -1136,7 +1136,7 @@
943ca97
 	g_free (keyring_name);
943ca97
 	
943ca97
 	if (res == GNOME_KEYRING_RESULT_OK)
943ca97
-		gkr_keyrings_remove (keyring);
943ca97
+		gkr_keyrings_remove (keyring, TRUE);
943ca97
 
943ca97
 	return TRUE;
943ca97
 }
943ca97
Only in gnome-keyring-2.20/daemon: gkr-daemon-ops.c.orig
943ca97
diff -ur gnome-keyring-2.20.orig/keyrings/gkr-keyring.c gnome-keyring-2.20/keyrings/gkr-keyring.c
943ca97
--- gnome-keyring-2.20.orig/keyrings/gkr-keyring.c	2007-10-03 15:01:34.000000000 +0200
943ca97
+++ gnome-keyring-2.20/keyrings/gkr-keyring.c	2007-10-03 15:01:48.000000000 +0200
943ca97
@@ -1211,7 +1211,7 @@
943ca97
 	if (!gkr_keyring_update_from_disk (keyring, TRUE)) {
943ca97
 		/* Failed to re-read, remove the keyring */
943ca97
 		g_warning ("Couldn't re-read keyring %s\n", keyring->keyring_name);
943ca97
-		gkr_keyrings_remove (keyring);
943ca97
+		gkr_keyrings_remove (keyring, TRUE);
943ca97
 	}
943ca97
 	
943ca97
 	return TRUE;
943ca97
diff -ur gnome-keyring-2.20.orig/keyrings/gkr-keyrings.c gnome-keyring-2.20/keyrings/gkr-keyrings.c
943ca97
--- gnome-keyring-2.20.orig/keyrings/gkr-keyrings.c	2007-10-03 15:01:34.000000000 +0200
943ca97
+++ gnome-keyring-2.20/keyrings/gkr-keyrings.c	2007-10-03 15:01:48.000000000 +0200
943ca97
@@ -235,7 +235,7 @@
943ca97
 		/* Try and update/load it */
943ca97
 		if (!gkr_keyring_update_from_disk (keyring, FALSE) ||
943ca97
 		    !keyring->keyring_name || !keyring->keyring_name[0]) {
943ca97
-			gkr_keyrings_remove (keyring);
943ca97
+			gkr_keyrings_remove (keyring, TRUE);
943ca97
 		} 
943ca97
 	}
943ca97
 
943ca97
@@ -257,7 +257,7 @@
943ca97
 		keyring = GKR_KEYRING (keyrings->data);
943ca97
 		if (keyring == session_keyring)
943ca97
 			session_keyring = NULL;
943ca97
-		gkr_keyrings_remove (keyring);
943ca97
+		gkr_keyrings_remove (keyring, FALSE);
943ca97
 	}
943ca97
 	
943ca97
 	g_free (default_keyring);
943ca97
@@ -411,7 +411,7 @@
943ca97
 		if (!keyring->location)
943ca97
 			continue;
943ca97
 		if (g_hash_table_lookup (checks, GUINT_TO_POINTER (keyring->location)))
943ca97
-			gkr_keyrings_remove (keyring);
943ca97
+			gkr_keyrings_remove (keyring, TRUE);
943ca97
 	}
943ca97
 	g_hash_table_destroy (checks);
943ca97
 
943ca97
@@ -434,15 +434,19 @@
943ca97
 }
943ca97
 
943ca97
 void 
943ca97
-gkr_keyrings_remove (GkrKeyring *keyring)
943ca97
+gkr_keyrings_remove (GkrKeyring *keyring,
943ca97
+		     gboolean unset_if_default)
943ca97
 {
943ca97
 	keyrings_init ();
943ca97
-	
943ca97
+
943ca97
 	g_assert (GKR_IS_KEYRING (keyring));
943ca97
 	
943ca97
+	
943ca97
+	
943ca97
 	if (g_list_find (keyrings, keyring)) {
943ca97
 
943ca97
-		if (default_keyring && 
943ca97
+		if (unset_if_default &&
943ca97
+		    default_keyring && 
943ca97
 		    strcmp (keyring->keyring_name, default_keyring) == 0)
943ca97
 			gkr_keyrings_set_default (NULL);
943ca97
 		
943ca97
diff -ur gnome-keyring-2.20.orig/keyrings/gkr-keyrings.h gnome-keyring-2.20/keyrings/gkr-keyrings.h
943ca97
--- gnome-keyring-2.20.orig/keyrings/gkr-keyrings.h	2007-10-03 15:01:34.000000000 +0200
943ca97
+++ gnome-keyring-2.20/keyrings/gkr-keyrings.h	2007-10-03 15:01:48.000000000 +0200
943ca97
@@ -36,7 +36,8 @@
943ca97
 
943ca97
 void            gkr_keyrings_add           (GkrKeyring *keyring);
943ca97
 
943ca97
-void            gkr_keyrings_remove        (GkrKeyring *keyring);
943ca97
+void            gkr_keyrings_remove        (GkrKeyring *keyring,
943ca97
+                                            gboolean unset_if_default);
943ca97
 
943ca97
 GkrKeyring*     gkr_keyrings_find          (const gchar *name);
943ca97