diff --git a/src/config.h b/src/config.h
index b564b8b..a1501ca 100644
--- a/src/config.h
+++ b/src/config.h
@@ -31,7 +31,8 @@
 #define PING_CACHE_TIME 30 /* Ping test assumed to be valid this long. */
 #define DECLINE_BACKOFF 600 /* disable DECLINEd static addresses for this long */
 #define DHCP_PACKET_MAX 16384 /* hard limit on DHCP packet size */
-#define SMALLDNAME 40 /* most domain names are smaller than this */
+#define SMALLDNAME 50 /* most domain names are smaller than this */
+#define CNAME_CHAIN 10 /* chains longer than this atr dropped for loop protection */
 #define HOSTSFILE "/etc/hosts"
 #define ETHERSFILE "/etc/ethers"
 #define DEFLEASE 3600 /* default lease time, 1 hour */
diff --git a/src/dnssec.c b/src/dnssec.c
index 6639188..c68640a 100644
--- a/src/dnssec.c
+++ b/src/dnssec.c
@@ -1653,7 +1653,7 @@
 {
   unsigned char *ans_start, *qname, *p1, *p2, **nsecs;
   int type1, class1, rdlen1, type2, class2, rdlen2, qclass, qtype;
-  int i, j, rc, nsec_count, cname_count = 10;
+  int i, j, rc, nsec_count, cname_count = CNAME_CHAIN;
   int nsec_type = 0, have_answer = 0;
 
   if (neganswer)
@@ -1930,7 +1930,7 @@
 {
   unsigned char *p = (unsigned char *)(header+1);
   int type, class, qtype, qclass, rdlen, j, rc;
-  int cname_count = 10;
+  int cname_count = CNAME_CHAIN;
 
   /* Get question */
   if (!extract_name(header, plen, &p, name, 1, 4))
diff --git a/src/rfc1035.c b/src/rfc1035.c
index 2fd43e2..15b4261 100644
--- a/src/rfc1035.c
+++ b/src/rfc1035.c
@@ -927,7 +927,7 @@
   
   for (i = ntohs(header->qdcount); i != 0; i--)
     {
-      int found = 0, cname_count = 10;
+      int found = 0, cname_count = CNAME_CHAIN;
       struct crec *cpp = NULL;
       int flags = RCODE(header) == NXDOMAIN ? F_NXDOMAIN : 0;
       int secflag = secure ?  F_DNSSECOK : 0;
