Index: src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs
===================================================================
--- src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs	(revision 4180)
+++ src/Extensions/Banshee.Daap/Banshee.Daap/DaapSource.cs	(working copy)
@@ -48,6 +48,7 @@
         private DAAP.Service service;
         private DAAP.Client client;
         private DAAP.Database database;
+        private int trackCount;
         
         public DAAP.Database Database {
             get { return database; }
@@ -68,6 +69,7 @@
             daap_track_map = new Dictionary <int, int> ();
             Properties.SetString ("UnmapSourceActionLabel", Catalog.GetString ("Disconnect"));
             Properties.SetString ("UnmapSourceActionIconName", "gtk-disconnect");
+	    trackCount = 0;
             
             UpdateIcon ();
             
@@ -177,7 +179,7 @@
             base.Dispose ();
         }
         
-        private void PromptLogin (object o, EventArgs args)
+        private void PromptLogin ()
         {
             SetStatus (String.Format (Catalog.GetString ("Logging in to {0}"), Name), false);
             
@@ -212,7 +214,12 @@
                 
                 foreach (DAAP.Track track in database.Tracks) {
                     DaapTrackInfo daaptrack = new DaapTrackInfo (track, this);
+		    if (0 == ((++trackCount) % 100)) {
                     daaptrack.Save ();
+		    }
+		    else {
+		        daaptrack.Save(false);
+		    }			    
                     Log.Debug ("Track ID", daaptrack.TrackId.ToString ());
                     
                     daap_track_map.Add (track.Id, daaptrack.TrackId);
