diff --git a/jws/jws.go b/jws/jws.go
index d0b1a54..a0b929d 100644
--- a/jws/jws.go
+++ b/jws/jws.go
@@ -301,7 +301,7 @@
 //
 // For information on the json.Unmarshaler parameter, see Parse.
 func ParseCompact(encoded []byte, u ...json.Unmarshaler) (JWS, error) {
-	return parseCompact(encoded, false)
+	return parseCompact(encoded, false, u...)
 }
 
 func parseCompact(encoded []byte, jwt bool, u ...json.Unmarshaler) (*jws, error) {
diff --git a/jws/jws_test.go b/jws/jws_test.go
index 7f27500..015fc32 100644
--- a/jws/jws_test.go
+++ b/jws/jws_test.go
@@ -72,6 +72,22 @@
 	}
 }
 
+func TestParseCompactWithUnmarshaler(t *testing.T) {
+	j := New(easyData, crypto.SigningMethodRS512)
+	b, err := j.Compact(rsaPriv)
+	if err != nil {
+		t.Error(err)
+	}
+	var e easy
+	j2, err := ParseCompact(b, &e)
+	if err != nil {
+		t.Error(err)
+	}
+	if !bytes.Equal(easyData, *j2.Payload().(*easy)) {
+		Error(t, easyData, *j2.Payload().(*easy))
+	}
+}
+
 func TestParseGeneral(t *testing.T) {
 	sm := []crypto.SigningMethod{
 		crypto.SigningMethodRS256,
