Merge branch 'eliquious-fix-multiple-audience-bug'
diff --git a/README.md b/README.md
index 8443db9..52e31d7 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
 JOSE
 ============
 [![Build Status](https://travis-ci.org/SermoDigital/jose.svg?branch=master)](https://travis-ci.org/SermoDigital/jose)
+[![GoDoc](https://godoc.org/github.com/SermoDigital/jose?status.svg)](https://godoc.org/github.com/SermoDigital/jose)
 
 JOSE is a comprehensive set of JWT, JWS, and JWE libraries.
 
diff --git a/jwt/claims.go b/jwt/claims.go
index 2f4f2e1..cc135d8 100644
--- a/jwt/claims.go
+++ b/jwt/claims.go
@@ -118,7 +118,9 @@
 		return []string{t}, true
 	case []string:
 		return t, true
-	case interface{}, []interface{}:
+	case []interface{}:
+		return stringify(t...)
+	case interface{}:
 		return stringify(t)
 	}
 	return nil, false
diff --git a/jwt/claims_test.go b/jwt/claims_test.go
index e22cb07..c5edd70 100644
--- a/jwt/claims_test.go
+++ b/jwt/claims_test.go
@@ -1 +1,85 @@
-package jwt
+package jwt_test
+
+import (
+	"testing"
+
+	"github.com/SermoDigital/jose/crypto"
+	"github.com/SermoDigital/jose/jws"
+)
+
+func TestMultipleAudienceBug_AfterMarshal(t *testing.T) {
+
+	// Create JWS claims
+	claims := jws.Claims{}
+	claims.SetAudience("example.com", "api.example.com")
+
+	token := jws.NewJWT(claims, crypto.SigningMethodHS256)
+	serializedToken, _ := token.Serialize([]byte("abcdef"))
+
+	// Unmarshal JSON
+	newToken, _ := jws.ParseJWT(serializedToken)
+
+	c := newToken.Claims()
+
+	// Get Audience
+	aud, ok := c.Audience()
+	if !ok {
+
+		// Fails
+		t.Fail()
+	}
+
+	t.Logf("aud Value: %s", aud)
+	t.Logf("aud Type : %T", aud)
+}
+
+func TestMultipleAudienceFix_AfterMarshal(t *testing.T) {
+	// Create JWS claims
+	claims := jws.Claims{}
+	claims.SetAudience("example.com", "api.example.com")
+
+	token := jws.NewJWT(claims, crypto.SigningMethodHS256)
+	serializedToken, _ := token.Serialize([]byte("abcdef"))
+
+	// Unmarshal JSON
+	newToken, _ := jws.ParseJWT(serializedToken)
+
+	c := newToken.Claims()
+
+	// Get Audience
+	aud, ok := c.Audience()
+	if !ok {
+
+		// Fails
+		t.Fail()
+	}
+
+	t.Logf("aud len(): %d", len(aud))
+	t.Logf("aud Value: %s", aud)
+	t.Logf("aud Type : %T", aud)
+}
+
+func TestSingleAudienceFix_AfterMarshal(t *testing.T) {
+	// Create JWS claims
+	claims := jws.Claims{}
+	claims.SetAudience("example.com")
+
+	token := jws.NewJWT(claims, crypto.SigningMethodHS256)
+	serializedToken, _ := token.Serialize([]byte("abcdef"))
+
+	// Unmarshal JSON
+	newToken, _ := jws.ParseJWT(serializedToken)
+	c := newToken.Claims()
+
+	// Get Audience
+	aud, ok := c.Audience()
+	if !ok {
+
+		// Fails
+		t.Fail()
+	}
+
+	t.Logf("aud len(): %d", len(aud))
+	t.Logf("aud Value: %s", aud)
+	t.Logf("aud Type : %T", aud)
+}