diff --git a/README.md b/README.md
index 1084e424424f4239f819234906d72b38b8fb2be2..64fc20c4a6d389295c509c4979168c8b7baf0c14 100644
--- a/README.md
+++ b/README.md
@@ -303,6 +303,7 @@ logformat = "text"
 - unreleased
    - New
       - Command line flag `-c` to specify location of config file.
+      - Proper refusal of dynamic update requests.
 - v0.5
    - New
       - Configurable certificate cache directory
diff --git a/dns.go b/dns.go
index 86c883c28da170618f64fc61e483dbfb604ee978..3531820a0d8c5cc56d128dfa3d1441ea20c64cac 100644
--- a/dns.go
+++ b/dns.go
@@ -56,7 +56,6 @@ func answer(q dns.Question) ([]dns.RR, int, error) {
 		if !ok {
 			rcode = dns.RcodeNameError
 		}
-			
 	}
 	log.WithFields(log.Fields{"qtype": dns.TypeToString[rtype], "domain": domain, "rcode": dns.RcodeToString[rcode]}).Debug("Answering question for domain")
 	return r, rcode, nil
@@ -68,6 +67,9 @@ func handleRequest(w dns.ResponseWriter, r *dns.Msg) {
 
 	if r.Opcode == dns.OpcodeQuery {
 		readQuery(m)
+	} else if r.Opcode == dns.OpcodeUpdate {
+		log.Debug("Refusing DNS Dynamic update request")
+		m.MsgHdr.Rcode = dns.RcodeRefused
 	}
 
 	w.WriteMsg(m)