diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketThreadChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketThreadChannel.cs
index 3df89d84..5f476d89 100644
--- a/src/Discord.Net.WebSocket/Entities/Channels/SocketThreadChannel.cs
+++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketThreadChannel.cs
@@ -178,14 +178,14 @@ namespace Discord.WebSocket
member.Update(model);
else
{
- member = SocketThreadUser.Create(Guild, this, model, guildMember);
- member.GlobalUser.AddRef();
+ member = SocketThreadUser.Create(Guild, this, model, guildMember ?? Guild.GetUser(model.UserId.GetValueOrDefault(0)));
+ member.GlobalUser?.AddRef();
_members[member.Id] = member;
}
return member;
}
- ///
+ ///
public new SocketThreadUser GetUser(ulong id)
{
var user = Users.FirstOrDefault(x => x.Id == id);
diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs
index b5859e77..d87da400 100644
--- a/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs
+++ b/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs
@@ -251,9 +251,9 @@ namespace Discord.WebSocket
public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
=> GuildUser.GetGuildAvatarUrl() ?? base.GetDisplayAvatarUrl(format, size);
- internal override SocketGlobalUser GlobalUser { get => GuildUser.GlobalUser; set => GuildUser.GlobalUser = value; }
+ internal override SocketGlobalUser GlobalUser { get => GuildUser?.GlobalUser; set => GuildUser.GlobalUser = value; }
- internal override SocketPresence Presence { get => GuildUser.Presence; set => GuildUser.Presence = value; }
+ internal override SocketPresence Presence { get => GuildUser?.Presence; set => GuildUser.Presence = value; }
///
/// Gets the guild user of this thread user.