The unified diff between revisions [36cf2167..] and [30d555c4..] is displayed below. It can also be downloaded as a raw diff.

#
#
# patch "sqlite-backend.c"
#  from [4be9ea4621c58f7736a6fa49103d27643c14a946]
#    to [0946a508d2831f62ee1d1c7784d62b1eaef7f1b0]
#
============================================================
--- sqlite-backend.c	4be9ea4621c58f7736a6fa49103d27643c14a946
+++ sqlite-backend.c	0946a508d2831f62ee1d1c7784d62b1eaef7f1b0
@@ -449,6 +449,12 @@ set_value_in_directory (SqliteSource *ss
 			rv = FALSE;
 			break;
 		}
+		/* if there was a value in the past, clean up any possible
+		 * lists or pair. This could be more elegant, but this way is
+		 * the best; it's slower (eg. might do a pair of DELETEs we don't need)
+		 * but it does mean that there's no chance of us leaving a
+		 * pair or list dangling by mistake
+		 */
 		if (get_value_id_in_directory (ss, dir, name, &existing_id)) {
 			if (!delete_old_list (ss, existing_id)) {
 				rv = FALSE;