diff -ur banshee-2.2.0-orig/src/Backends/Banshee.Gio/Banshee.IO.Gio/Directory.cs banshee-2.2.0/src/Backends/Banshee.Gio/Banshee.IO.Gio/Directory.cs
--- banshee-2.2.0-orig/src/Backends/Banshee.Gio/Banshee.IO.Gio/Directory.cs	2010-11-28 05:36:15.000000000 -0600
+++ banshee-2.2.0/src/Backends/Banshee.Gio/Banshee.IO.Gio/Directory.cs	2011-11-04 03:10:52.854992463 -0500
@@ -118,7 +118,7 @@
             var enumerator = dir.EnumerateChildren ("standard::type,standard::name", followSymlinks ? FileQueryInfoFlags.None : FileQueryInfoFlags.NofollowSymlinks, null);
             foreach (FileInfo file in enumerator) {
                 if ((file.FileType & FileType.Regular) != 0) {
-                    var ret = dir.Uri.AbsoluteUri + "/" + Uri.EscapeDataString (file.Name);
+                    SafeUri ret = new SafeUri (dir.Path + "/" + file.Name);
                     file.Dispose ();
                     yield return ret;
                 } else {
@@ -141,7 +141,7 @@
             var enumerator = dir.EnumerateChildren ("standard::type,standard::name", followSymlinks ? FileQueryInfoFlags.None : FileQueryInfoFlags.NofollowSymlinks, null);
             foreach (FileInfo file in enumerator) {
                 if ((file.FileType & FileType.Directory) != 0) {
-                    var ret = dir.Uri.AbsoluteUri + "/" + Uri.EscapeDataString (file.Name);
+                    SafeUri ret = new SafeUri (dir.Path + "/" + file.Name);
                     file.Dispose ();
                     yield return ret;
                 } else {

