diff --git a/src/Discord.Net.Core/Entities/Users/GuildUserProperties.cs b/src/Discord.Net.Core/Entities/Users/GuildUserProperties.cs
index 33b311604..1c5e5482c 100644
--- a/src/Discord.Net.Core/Entities/Users/GuildUserProperties.cs
+++ b/src/Discord.Net.Core/Entities/Users/GuildUserProperties.cs
@@ -34,7 +34,7 @@ namespace Discord
/// Should the user have a nickname set?
///
///
- /// To clear the user's nickname, this value can be set to null.
+ /// To clear the user's nickname, this value can be set to or .
///
public Optional Nickname { get; set; }
///
diff --git a/src/Discord.Net.Rest/Entities/Users/UserHelper.cs b/src/Discord.Net.Rest/Entities/Users/UserHelper.cs
index 562cfaae8..dfb81ff2c 100644
--- a/src/Discord.Net.Rest/Entities/Users/UserHelper.cs
+++ b/src/Discord.Net.Rest/Entities/Users/UserHelper.cs
@@ -48,6 +48,14 @@ namespace Discord.Rest
else if (args.RoleIds.IsSpecified)
apiArgs.RoleIds = args.RoleIds.Value.ToArray();
+ /*
+ * Ensure that the nick passed in the params of the request is not null.
+ * string.Empty ("") is the only way to reset the user nick in the API,
+ * a value of null does not. This is a workaround.
+ */
+ if (apiArgs.Nickname.IsSpecified && apiArgs.Nickname.Value == null)
+ apiArgs.Nickname = new Optional(string.Empty);
+
await client.ApiClient.ModifyGuildMemberAsync(user.GuildId, user.Id, apiArgs, options).ConfigureAwait(false);
return args;
}