diff --git a/src/Discord.Net/Models/Server.cs b/src/Discord.Net/Models/Server.cs
index 4c8e12960..168f55e90 100644
--- a/src/Discord.Net/Models/Server.cs
+++ b/src/Discord.Net/Models/Server.cs
@@ -37,7 +37,7 @@ namespace Discord
public bool IsOwner => _client.CurrentUserId == _ownerId;
/// Returns the user that first created this server.
[JsonIgnore]
- public Member Owner => _client.Members[_ownerId, Id];
+ public Member Owner { get; private set; }
/// Returns the id of the AFK voice channel for this server (see AFKTimeout).
public string AFKChannelId { get; private set; }
@@ -129,8 +129,11 @@ namespace Discord
JoinedAt = model.JoinedAt.Value;
if (model.Name != null)
Name = model.Name;
- if (model.OwnerId != null)
+ if (model.OwnerId != null && _ownerId != model.OwnerId)
+ {
_ownerId = model.OwnerId;
+ Owner = _client.Members[_ownerId, Id];
+ }
if (model.Region != null)
Region = model.Region;
diff --git a/src/Discord.Net/Models/User.cs b/src/Discord.Net/Models/User.cs
index 838fccdf4..e18f93ce7 100644
--- a/src/Discord.Net/Models/User.cs
+++ b/src/Discord.Net/Models/User.cs
@@ -213,7 +213,7 @@ namespace Discord
uint newPermissions = 0x0;
uint oldPermissions = permissions.RawValue;
- if (Id == server.Owner.Id)
+ if (server.Owner == this)
newPermissions = ChannelPermissions.All(channel).RawValue;
else
{