Fix to last commit.
diff --git a/src/dnssec.c b/src/dnssec.c
index ebd7254..e62b424 100644
--- a/src/dnssec.c
+++ b/src/dnssec.c
@@ -1393,7 +1393,8 @@
       if (!CHECK_LEN(header, p, plen, 0))
 	return digest; /* bad packet */
     }
-
+  
+  hash->digest(ctx, hash->digest_size, digest);
   return digest;
 }
 
diff --git a/src/forward.c b/src/forward.c
index 2bc2244..59d03f1 100644
--- a/src/forward.c
+++ b/src/forward.c
@@ -1375,7 +1375,7 @@
 		{
 		  struct server *firstsendto = NULL;
 #ifdef HAVE_DNSSEC
-		  unsigned char *newhash, *hash[HASH_SIZE];
+		  unsigned char *newhash, hash[HASH_SIZE];
 		  if ((newhash = hash_questions(header, (unsigned int)size, daemon->keyname)))
 		    memcpy(hash, newhash, HASH_SIZE);
 #else
@@ -1506,10 +1506,16 @@
 #ifdef HAVE_DNSSEC
 		      newhash = hash_questions(header, (unsigned int)m, daemon->namebuff);
 		      if (!newhash || memcmp(hash, newhash, HASH_SIZE) != 0)
-			break;
+			{ 
+			  m = 0;
+			  break;
+			}
 #else			  
 		      if (crc != questions_crc(header, (unsigned int)m, daemon->namebuff))
-			break;
+			{
+			  m = 0;
+			  break;
+			}
 #endif
 
 		      m = process_reply(header, now, last_server, (unsigned int)m,