diff --git a/pwhash/argon2.go b/pwhash/argon2.go
index 09294107d7cd972c0a087946144f464944128a5b..fef03caa0c001faace0d16123b23e53e5f0626ec 100644
--- a/pwhash/argon2.go
+++ b/pwhash/argon2.go
@@ -6,6 +6,7 @@ import (
 	"encoding/hex"
 	"errors"
 	"fmt"
+	"log"
 	"strconv"
 	"strings"
 
@@ -54,6 +55,16 @@ func NewArgon2WithParams(time, mem uint32, threads uint8) PasswordHash {
 	return newArgon2PasswordHash(time, mem, threads, &a2Codec{})
 }
 
+// NewArgon2Std returns an Argon2i-based PasswordHash that conforms
+// to the reference implementation encoding, using default parameters.
+func NewArgon2Std() PasswordHash {
+	return NewArgon2StdWithParams(
+		defaultArgon2Params.Time,
+		defaultArgon2Params.Memory,
+		defaultArgon2Params.Threads,
+	)
+}
+
 // NewArgon2StdWithParams returns an Argon2i-based PasswordHash using
 // the specified parameters for time, memory, and number of
 // threads. This will use the string encoding ("$argon2$") documented
@@ -204,5 +215,7 @@ func (*argon2StdCodec) decodeArgon2Hash(s string) (params argon2Params, salt []b
 		return
 	}
 	dk, err = base64.RawStdEncoding.DecodeString(parts[3])
+
+	log.Printf("params: %+v", params)
 	return
 }
diff --git a/pwhash/password.go b/pwhash/password.go
index 86412954153eed8b988c59d01fb3a19e1b9e071a..07b093d412991e5bb07f78e9e400b94aad6ae60a 100644
--- a/pwhash/password.go
+++ b/pwhash/password.go
@@ -49,11 +49,12 @@ func getRandomBytes(n int) []byte {
 
 // A registry of default handlers for decoding passwords.
 var prefixRegistry = map[string]PasswordHash{
-	"$1$":  NewSystemCrypt(),
-	"$5$":  NewSystemCrypt(),
-	"$6$":  NewSystemCrypt(),
-	"$s$":  NewScrypt(),
-	"$a2$": NewArgon2(),
+	"$1$":       NewSystemCrypt(),
+	"$5$":       NewSystemCrypt(),
+	"$6$":       NewSystemCrypt(),
+	"$s$":       NewScrypt(),
+	"$a2$":      NewArgon2(),
+	"$argon2i$": NewArgon2Std(),
 }
 
 // ComparePassword returns true if the given password matches the
diff --git a/pwhash/password_test.go b/pwhash/password_test.go
index c6d8d7286f9e625416412dcfaf05b6f830c537e2..e1cbfdeffcb7143d65b0baf9abbb0714a8035a91 100644
--- a/pwhash/password_test.go
+++ b/pwhash/password_test.go
@@ -65,6 +65,14 @@ func testImpl(t *testing.T, h PasswordHash) {
 	}
 }
 
+func TestStandardArgon2Password(t *testing.T) {
+	enc := "$argon2i$v=19$m=32768,t=4,p=1$DG0B56zlrrx+VMVaM6wvsw$8iV+HwTKmofjrb+q9I2zZGQnGXzXtiIXv8VdHdvbbX8"
+	pw := "idontmindbirds"
+	if !ComparePassword(enc, pw) {
+		t.Fatal("comparison failed")
+	}
+}
+
 func BenchmarkArgon2(b *testing.B) {
 	var testParams []argon2Params
 	for iTime := 1; iTime <= 5; iTime++ {