diff --git a/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs b/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs
index 64622b6..28af781 100644
--- a/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs
+++ b/src/Core/Banshee.Services/Banshee.Sources/DatabaseSource.cs
@@ -172,7 +172,7 @@ namespace Banshee.Sources
         {
         }
 
-        protected bool NeedsReloadWhenFieldsChanged (Hyena.Query.QueryField [] fields)
+        protected bool NeedsReloadWhenFieldsChanged (IEnumerable<Hyena.Query.QueryField> fields)
         {
             if (fields == null) {
                 return true;
diff --git a/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs b/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
index 8f71ede..cc7339a 100644
--- a/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
+++ b/src/Core/Banshee.Services/Banshee.Sources/PrimarySource.cs
@@ -57,8 +57,8 @@ namespace Banshee.Sources
             get { return when; }
         }
 
-        private QueryField [] changed_fields;
-        public QueryField [] ChangedFields {
+        private IEnumerable<QueryField> changed_fields;
+        public IEnumerable<QueryField> ChangedFields {
             get { return changed_fields; }
         }
 
@@ -67,7 +67,7 @@ namespace Banshee.Sources
             when = DateTime.Now;
         }
 
-        public TrackEventArgs (params QueryField [] fields) : this ()
+        public TrackEventArgs (IEnumerable<QueryField> fields) : this ()
         {
             changed_fields = fields;
         }
@@ -415,7 +415,9 @@ namespace Banshee.Sources
         protected override void OnTracksChanged (params QueryField [] fields)
         {
             ThreadAssist.SpawnFromMain (delegate {
-                if (NeedsReloadWhenFieldsChanged (fields)) {
+                var fields_changed = new List<QueryField> (fields);
+
+                if (NeedsReloadWhenFieldsChanged (fields_changed)) {
                     Reload ();
                 } else {
                     InvalidateCaches ();
@@ -425,7 +427,7 @@ namespace Banshee.Sources
 
                 TrackEventHandler handler = TracksChanged;
                 if (handler != null) {
-                    handler (this, new TrackEventArgs (fields));
+                    handler (this, new TrackEventArgs (fields_changed));
                 }
             });
         }
