diff --git a/ADNS/Resolver.hs b/ADNS/Resolver.hs
--- a/ADNS/Resolver.hs
+++ b/ADNS/Resolver.hs
@@ -26,7 +26,7 @@
 import Control.Concurrent.MVar
 import Control.Monad      ( when )
 import Data.List          ( sortBy )
-import Data.Map ( Map )
+import Data.Map           ( Map )
 import qualified Data.Map as Map
 import Network            ( HostName )
 import Network.Socket     ( HostAddress )
@@ -166,7 +166,7 @@
     r <- adnsWait dns
     case r of
       Nothing    -> return (RState dns qs, False)
-      Just (q,a) -> do mv <- Map.lookup q qs
+      Just (q,a) -> do mv <- maybe (fail "inconsistent ADNS state") return (Map.lookup q qs)
                        putMVar mv a
                        return (RState dns (Map.delete q qs), True)
   when more (resolveLoop mst)
diff --git a/README b/README
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 An asynchronous DNS resolver for Haskell_
 =========================================
 
-:Latest Release: hsdns-1.3.tar.gz_
+:Latest Release: hsdns-1.4.tar.gz_
 :Darcs:          darcs_ get http://cryp.to/hsdns/
 
 Synopsis
@@ -56,6 +56,6 @@
 
 .. _Reference Documentation: docs/index.html
 
-.. _hsdns-1.3.tar.gz: http://cryp.to/hsdns/hsdns-1.3.tar.gz
+.. _hsdns-1.4.tar.gz: http://cryp.to/hsdns/hsdns-1.4.tar.gz
 
 .. _adns-reverse-lookup.hs: example/adns-reverse-lookup.hs
diff --git a/hsdns.cabal b/hsdns.cabal
--- a/hsdns.cabal
+++ b/hsdns.cabal
@@ -1,5 +1,5 @@
 Name:                   hsdns
-Version:                1.3
+Version:                1.4
 Author:                 Peter Simons <simons@cryp.to>,
                         Lutz Donnerhacke <lutz@iks-jena.de>
 Maintainer:             Peter Simons <simons@cryp.to>
