diff --git a/osu.Game.Tests/Visual/TestCaseUserProfile.cs b/osu.Game.Tests/Visual/TestCaseUserProfile.cs
index 3caef777e7..1fc6c6f224 100644
--- a/osu.Game.Tests/Visual/TestCaseUserProfile.cs
+++ b/osu.Game.Tests/Visual/TestCaseUserProfile.cs
@@ -58,6 +58,12 @@ namespace osu.Game.Tests.Visual
 
             checkSupporterTag(false);
 
+            AddStep("Show null dummy", () => profile.ShowUser(new User
+            {
+                Username = @"Null",
+                Id = 1,
+            }, false));
+
             AddStep("Show ppy", () => profile.ShowUser(new User
             {
                 Username = @"peppy",
diff --git a/osu.Game/Overlays/Profile/RankGraph.cs b/osu.Game/Overlays/Profile/RankGraph.cs
index 429049c7bc..369bdee65f 100644
--- a/osu.Game/Overlays/Profile/RankGraph.cs
+++ b/osu.Game/Overlays/Profile/RankGraph.cs
@@ -95,7 +95,7 @@ namespace osu.Game.Overlays.Profile
         {
             placeholder.FadeIn(fade_duration, Easing.Out);
 
-            if (user == null)
+            if (user?.Statistics?.Ranks.Global == null)
             {
                 rankText.Text = string.Empty;
                 performanceText.Text = string.Empty;
@@ -105,7 +105,7 @@ namespace osu.Game.Overlays.Profile
                 return;
             }
 
-            int[] userRanks = user.RankHistory?.Data ?? new[] { user.Statistics.Ranks.Global };
+            int[] userRanks = user.RankHistory?.Data ?? new[] { user.Statistics.Ranks.Global.Value };
             ranks = userRanks.Select((x, index) => new KeyValuePair<int, int>(index, x)).Where(x => x.Value != 0).ToArray();
 
             if (ranks.Length > 1)
diff --git a/osu.Game/Overlays/UserProfileOverlay.cs b/osu.Game/Overlays/UserProfileOverlay.cs
index f3fd7aeac5..aed0a6d7c6 100644
--- a/osu.Game/Overlays/UserProfileOverlay.cs
+++ b/osu.Game/Overlays/UserProfileOverlay.cs
@@ -169,15 +169,18 @@ namespace osu.Game.Overlays
         {
             Header.User = user;
 
-            foreach (string id in user.ProfileOrder)
+            if (user.ProfileOrder != null)
             {
-                var sec = sections.FirstOrDefault(s => s.Identifier == id);
-                if (sec != null)
+                foreach (string id in user.ProfileOrder)
                 {
-                    sec.User.Value = user;
+                    var sec = sections.FirstOrDefault(s => s.Identifier == id);
+                    if (sec != null)
+                    {
+                        sec.User.Value = user;
 
-                    sectionsContainer.Add(sec);
-                    tabs.AddItem(sec);
+                        sectionsContainer.Add(sec);
+                        tabs.AddItem(sec);
+                    }
                 }
             }
         }
diff --git a/osu.Game/Users/UserStatistics.cs b/osu.Game/Users/UserStatistics.cs
index c29bc91d17..2504c9c62c 100644
--- a/osu.Game/Users/UserStatistics.cs
+++ b/osu.Game/Users/UserStatistics.cs
@@ -73,10 +73,10 @@ namespace osu.Game.Users
         public struct UserRanks
         {
             [JsonProperty(@"global")]
-            public int Global;
+            public int? Global;
 
             [JsonProperty(@"country")]
-            public int Country;
+            public int? Country;
         }
 
     }