diff --git a/dns_challenge.go b/dns_challenge.go
index 7e067f305a086ee8daf3529c6417f19c4b67adae..b2f111be56a8bd350168c076186d819e602f8c3e 100644
--- a/dns_challenge.go
+++ b/dns_challenge.go
@@ -87,8 +87,8 @@ func (d *dnsValidator) client() *dns.Client {
 }
 
 func (d *dnsValidator) Fulfill(ctx context.Context, client *acme.Client, domain string, chal *acme.Challenge) (func(), error) {
-	zone := domain[strings.Index(domain, ".")+1:]
 	fqdn := dns.Fqdn(domain)
+	zone := domain[strings.Index(fqdn, ".")+1:]
 	value, err := client.DNS01ChallengeRecord(chal.Token)
 	if err != nil {
 		return nil, err