diff --git a/src/Clients/Muinshee/Muinshee/PlayerInterface.cs b/src/Clients/Muinshee/Muinshee/PlayerInterface.cs
index 0b49fcd..2f2738b 100644
--- a/src/Clients/Muinshee/Muinshee/PlayerInterface.cs
+++ b/src/Clients/Muinshee/Muinshee/PlayerInterface.cs
@@ -57,7 +57,7 @@ using Banshee.PlayQueue;
 
 namespace Muinshee
 {
-    public class PlayerInterface : BaseClientWindow, IClientWindow, IDBusObjectName, IService, IDisposable
+    public class PlayerInterface : BaseClientWindow, IClientWindow, ITrackModelView, IDBusObjectName, IService, IDisposable
     {
         // Major Layout Components
         private VBox content_vbox;
@@ -73,6 +73,14 @@ namespace Muinshee
         private int played_songs_number = -1;
         private SchemaPreference<int> played_songs_number_pref;
 
+        public ITrackModelView CompositeView {
+            get { return this; }
+        }
+
+        IListView<TrackInfo> ITrackModelView.TrackView {
+            get { return track_view; }
+        }
+
         public PlayerInterface () : base (Catalog.GetString ("Banshee Media Player"), "muinshee", -1, 450)
         {
         }
diff --git a/src/Clients/Nereid/Nereid/PlayerInterface.cs b/src/Clients/Nereid/Nereid/PlayerInterface.cs
index 52fb337..9bfe93d 100644
--- a/src/Clients/Nereid/Nereid/PlayerInterface.cs
+++ b/src/Clients/Nereid/Nereid/PlayerInterface.cs
@@ -84,6 +84,10 @@ namespace Nereid
             get { return main_menu; }
         }
 
+        public ITrackModelView CompositeView {
+            get { return composite_view; }
+        }
+
         public Toolbar HeaderToolbar {
             get { return header_toolbar; }
         }
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui/IClientWindow.cs b/src/Core/Banshee.ThickClient/Banshee.Gui/IClientWindow.cs
index 1d693b1..7319ee3 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui/IClientWindow.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui/IClientWindow.cs
@@ -29,7 +29,11 @@
 using System;
 using DBus;
 
+using Hyena.Data.Gui;
+using System.Collections.Generic;
+
 using Banshee.ServiceStack;
+using Banshee.Sources.Gui;
 
 namespace Banshee.Gui
 {
@@ -39,5 +43,6 @@ namespace Banshee.Gui
         void Present ();
         void Hide ();
         void Fullscreen ();
+        ITrackModelView CompositeView { get; }
     }
 }
diff --git a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs
index a0f8d96..ccc9e8e 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/CompositeTrackSourceContents.cs
@@ -54,8 +54,8 @@ namespace Banshee.Sources.Gui
     {
         private QueryFilterView<string> genre_view;
         private YearListView year_view;
-        private ArtistListView artist_view;
-        private ArtistListView albumartist_view;
+        private TrackFilterListView<ArtistInfo> artist_view;
+        private TrackFilterListView<ArtistInfo> albumartist_view;
         private AlbumListView album_view;
         private TrackListView track_view;
 
@@ -83,6 +83,30 @@ namespace Banshee.Sources.Gui
             </ui>
         ";
 
+        public TrackFilterListView<ArtistInfo> ArtistView {
+            get { return artist_view; }
+            set {
+                SwapView (artist_view, value);
+                artist_view = value;
+
+                SetupArtistsView (artist_view);
+
+                SetSource (source);
+            }
+       }
+
+        public TrackFilterListView<ArtistInfo> AlbumartistView {
+            get { return albumartist_view; }
+            set {
+                SwapView (albumartist_view, value);
+                albumartist_view = value;
+
+                SetupArtistsView (albumartist_view);
+
+                SetSource (source);
+            }
+        }
+
         public CompositeTrackSourceContents () : base ("albumartist")
         {
             if (ServiceManager.Contains ("InterfaceActionService")) {
@@ -239,14 +263,10 @@ namespace Banshee.Sources.Gui
             albumartist_view = new ArtistListView ();
             if (ArtistFilterType.Get ().Equals ("artist")) {
                 SetupFilterView (artist_view);
-                artist_view.Parent.Shown += delegate {
-                    artist_view.Parent.Visible = ArtistFilterVisible.Get ();
-                };
+                SetupArtistsView (artist_view);
             } else {
                 SetupFilterView (albumartist_view);
-                albumartist_view.Parent.Shown += delegate {
-                    albumartist_view.Parent.Visible = ArtistFilterVisible.Get ();
-                };
+                SetupArtistsView (albumartist_view);
             }
 
             SetupFilterView (year_view = new YearListView ());
@@ -258,6 +278,15 @@ namespace Banshee.Sources.Gui
             SetupFilterView (album_view = new AlbumListView ());
         }
 
+        private void SetupArtistsView (TrackFilterListView<ArtistInfo> view)
+        {
+            if (view.Parent != null) {
+                view.Parent.Shown += delegate {
+                    view.Parent.Visible = ArtistFilterVisible.Get ();
+                };
+            }
+        }
+
         protected override void ClearFilterSelections ()
         {
             if (genre_view.Model != null) {
@@ -289,7 +318,7 @@ namespace Banshee.Sources.Gui
             SetModel (genre);
         }
 
-        IListView<TrackInfo> ITrackModelSourceContents.TrackView {
+        IListView<TrackInfo> ITrackModelView.TrackView {
             get { return track_view; }
         }
 
diff --git a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ITrackModelSourceContents.cs b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ITrackModelSourceContents.cs
index 2e5b0d7..5253d74 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ITrackModelSourceContents.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/ITrackModelSourceContents.cs
@@ -35,7 +35,11 @@ using Banshee.Sources;
 
 namespace Banshee.Sources.Gui
 {
-    public interface ITrackModelSourceContents : ISourceContents
+    public interface ITrackModelSourceContents : ISourceContents, ITrackModelView
+    {
+    }
+
+    public interface ITrackModelView
     {
         IListView<TrackInfo> TrackView { get; }
     }
