diff --git a/osu.Game/Overlays/Direct/DirectGridPanel.cs b/osu.Game/Overlays/Direct/DirectGridPanel.cs
index e863f78e3f..a40f20850e 100644
--- a/osu.Game/Overlays/Direct/DirectGridPanel.cs
+++ b/osu.Game/Overlays/Direct/DirectGridPanel.cs
@@ -29,6 +29,7 @@ namespace osu.Game.Overlays.Direct
 
         public DirectGridPanel(BeatmapSetInfo beatmap) : base(beatmap)
         {
+            Width = 400;
             Height = 140 + vertical_padding; //full height of all the elements plus vertical padding (autosize uses the image)
         }
 
diff --git a/osu.Game/Overlays/DirectOverlay.cs b/osu.Game/Overlays/DirectOverlay.cs
index d11f2342cd..6f7fabb910 100644
--- a/osu.Game/Overlays/DirectOverlay.cs
+++ b/osu.Game/Overlays/DirectOverlay.cs
@@ -222,7 +222,7 @@ namespace osu.Game.Overlays
                     switch (displayStyle)
                     {
                         case PanelDisplayStyle.Grid:
-                            return new DirectGridPanel(b) { Width = 400 };
+                            return new DirectGridPanel(b);
                         default:
                             return new DirectListPanel(b);
                     }
diff --git a/osu.Game/Overlays/Profile/Sections/Beatmaps/PaginatedBeatmapContainer.cs b/osu.Game/Overlays/Profile/Sections/Beatmaps/PaginatedBeatmapContainer.cs
index 0a86b15504..834328ca0e 100644
--- a/osu.Game/Overlays/Profile/Sections/Beatmaps/PaginatedBeatmapContainer.cs
+++ b/osu.Game/Overlays/Profile/Sections/Beatmaps/PaginatedBeatmapContainer.cs
@@ -17,7 +17,7 @@ namespace osu.Game.Overlays.Profile.Sections.Beatmaps
 
         private readonly BeatmapSetType type;
 
-        private DirectPanel playing;
+        private DirectPanel currentlyPlaying;
 
         public PaginatedBeatmapContainer(BeatmapSetType type, Bindable<User> user, string header, string missing = "None... yet.")
             : base(user, header, missing)
@@ -51,24 +51,18 @@ namespace osu.Game.Overlays.Profile.Sections.Beatmaps
                     if (!s.OnlineBeatmapSetID.HasValue)
                         continue;
 
-                    var subReq = new GetBeatmapSetRequest(s.OnlineBeatmapSetID.Value);
-                    subReq.Success += b =>
+                    var panel = new DirectGridPanel(s.ToBeatmapSet(Rulesets));
+                    ItemsContainer.Add(panel);
+
+                    panel.PreviewPlaying.ValueChanged += isPlaying =>
                     {
-                        var panel = new DirectGridPanel(b.ToBeatmapSet(Rulesets)) { Width = 400 };
-                        ItemsContainer.Add(panel);
+                        if (!isPlaying) return;
 
-                        panel.PreviewPlaying.ValueChanged += newValue =>
-                        {
-                            if (newValue)
-                            {
-                                if (playing != null && playing != panel)
-                                    playing.PreviewPlaying.Value = false;
-                                playing = panel;
-                            }
-                        };
+                        if (currentlyPlaying != null && currentlyPlaying != panel)
+                            currentlyPlaying.PreviewPlaying.Value = false;
+
+                        currentlyPlaying = panel;
                     };
-
-                    Api.Queue(subReq);
                 }
             };