--- old-startup/lib/rb-file-helpers.c	2006-03-16 21:39:27.000000000 +1000
+++ new-startup/lib/rb-file-helpers.c	2006-03-16 21:39:27.000000000 +1000
@@ -703,20 +703,24 @@
 
 	if (uri[0] == '/') {
 		/* local path */
-		char *tmp;
+		char *tmp, *tmp2;
 		result = gnome_vfs_make_path_name_canonical (uri);
 		tmp = gnome_vfs_escape_path_string (result);
 		g_free (result);
-		result = g_strconcat ("file://", tmp, NULL);
+		tmp2 = gnome_vfs_escape_set (tmp, "&=");	/* extra characters gnome_vfs_uri_new escapes */
 		g_free (tmp);
+		result = g_strconcat ("file://", tmp2, NULL);
+		g_free (tmp2);
 	} else  if (g_str_has_prefix (uri, "file://")) {
 	    	/* local file, rhythmdb wants this path escaped */
 		char *tmp1, *tmp2;
 		tmp1  = gnome_vfs_unescape_string (uri + 7, NULL);  /* ignore "file://" */
 		tmp2 = gnome_vfs_escape_path_string (tmp1);
 		g_free (tmp1);
-		result = g_strconcat ("file://", tmp2, NULL); /* re-add scheme */
+		tmp1 = gnome_vfs_escape_set (tmp2, "&=");
 		g_free (tmp2);
+		result = g_strconcat ("file://", tmp1, NULL); /* re-add scheme */
+		g_free (tmp1);
 	} else {
 		GnomeVFSURI *vfsuri = gnome_vfs_uri_new (uri);
 

--- old-startup/rhythmdb/rhythmdb-tree.c	2006-03-16 21:39:27.000000000 +1000
+++ new-startup/rhythmdb/rhythmdb-tree.c	2006-03-16 21:39:27.000000000 +1000
@@ -95,7 +95,7 @@
 					gpointer data);
 
 
-#define RHYTHMDB_TREE_XML_VERSION "1.1"
+#define RHYTHMDB_TREE_XML_VERSION "1.2"
 
 static void destroy_tree_property (RhythmDBTreeProperty *prop);
 static RhythmDBTreeProperty *get_or_create_album (RhythmDBTree *db, RhythmDBTreeProperty *artist,
@@ -237,10 +237,10 @@
 				if (!strcmp (*attrs, "version")) {
 					const char *version = *(attrs+1);
 
-					if (!strcmp (version, "1.0")) {
+					if (!strcmp (version, "1.0") || !strcmp (version, "1.1")) {
 						ctx->canonicalise_uris = TRUE;
 						rb_debug ("old version of rhythmdb, performing URI canonicalisation for all entries");
-					} else if (!strcmp (version, "1.1")) {
+					} else if (!strcmp (version, "1.2")) {
 						/* current version*/
 					} else {
 						/* too new */
@@ -929,7 +929,7 @@
 	ctx.handle = f;
 	ctx.error = NULL;
 	RHYTHMDB_FWRITE_STATICSTR ("<?xml version=\"1.0\" standalone=\"yes\"?>\n"
-				   "<rhythmdb version=\"" RHYTHMDB_TREE_XML_VERSION "\">", 
+				   "<rhythmdb version=\"" RHYTHMDB_TREE_XML_VERSION "\">\n", 
 				   ctx.handle, ctx.error);
 
 	rhythmdb_hash_tree_foreach (rdb, RHYTHMDB_ENTRY_TYPE_SONG,

