diff --git a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
index bec4165..5980521 100644
--- a/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
+++ b/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseTrackInfo.cs
@@ -610,11 +610,25 @@ namespace Banshee.Collection.Database
                 SafeUri new_uri = new SafeUri (new_filename);
 
                 try {
-                    if (Banshee.IO.File.Exists (new_uri)) {
-                        Hyena.Log.DebugFormat ("Not copying {0} to library because there is already a file at {1}", old_uri, new_uri);
-                        return;
+                    SafeUri new_uri_copy = new_uri;
+                    int j = 0;
+                    while (Banshee.IO.File.Exists (new_uri_copy)) {
+                        j++;
+                        // ugly hack until a dialog box can be generated
+                        string[] tmp_uri = new_uri.LocalPath.Split('.');
+                        tmp_uri[tmp_uri.Length - 2] += "-" + j;
+                        string tmp_uri_out = "";
+                        for(int i=0; i<tmp_uri.Length; i++){
+                            tmp_uri_out += tmp_uri[i] + ".";
+                        }
+                        new_uri_copy = new SafeUri(tmp_uri_out);
+                        
+                        // old code leaves file in place and imports anyway 
+                        /*Hyena.Log.DebugFormat ("Not copying {0} to library because there is already a file at {1}", old_uri, new_uri);
+                        return;*/
                     }
-                    
+                    new_uri = new_uri_copy;
+
                     Banshee.IO.File.Copy (old_uri, new_uri, false);
                     Uri = new_uri;
                 } catch (Exception e) {
