diff --git a/src/Discord.Net.Core/Utils/TokenUtils.cs b/src/Discord.Net.Core/Utils/TokenUtils.cs
index c820ef069..b52ba3dd6 100644
--- a/src/Discord.Net.Core/Utils/TokenUtils.cs
+++ b/src/Discord.Net.Core/Utils/TokenUtils.cs
@@ -23,13 +23,14 @@ namespace Discord
/// Pads a base64-encoded string with 0, 1, or 2 '=' characters,
/// if the string is not a valid multiple of 4.
/// Does not ensure that the provided string contains only valid base64 characters.
+ /// Strings that already contain padding will not have any more padding applied.
///
///
/// A string that would require 3 padding characters is considered to be already corrupt.
/// Some older bot tokens may require padding, as the format provided by Discord
/// does not include this padding in the token.
///
- /// The base64 encoded string to pad with characters.
+ /// The base64 encoded string to pad with characters.
/// A string containing the base64 padding.
///
/// Thrown if would require an invalid number of padding characters.
@@ -37,18 +38,15 @@ namespace Discord
///
/// Thrown if is null, empty, or whitespace.
///
- ///
- /// Thrown if the given input string already contains padding characters.
- ///
internal static string PadBase64String(string encodedBase64)
{
if (string.IsNullOrWhiteSpace(encodedBase64))
throw new ArgumentNullException(paramName: encodedBase64,
message: "The supplied base64-encoded string was null or whitespace.");
+ // do not pad if already contains padding characters
if (encodedBase64.IndexOf(Base64Padding) != -1)
- throw new ArgumentException(paramName: encodedBase64,
- message: "The supplied base64-encoded string already contains padding characters.");
+ return encodedBase64;
// based from https://stackoverflow.com/a/1228744
var padding = (4 - (encodedBase64.Length % 4)) % 4;