--- libevent-2.0.3-alpha/evdns.c.orig	2009-11-25 09:56:30.000000000 +0800
+++ libevent-2.0.3-alpha/evdns.c	2009-11-25 15:05:41.000000000 +0800
@@ -617,7 +617,7 @@
 
 static void
 nameserver_up(struct nameserver *const ns) {
-	EVDNS_LOCK(ns->base);
+	//EVDNS_LOCK(ns->base);  // should this be ASSERT_LOCKED(ns->base);
 	if (ns->state) return;
 	log(EVDNS_LOG_WARN, "Nameserver %s is back up",
 	    debug_ntop((struct sockaddr *)&ns->address));
@@ -3895,6 +3947,7 @@
 		v4_timedout = 1;
 		EVDNS_LOCK(data->evdns_base);
 		++data->evdns_base->getaddrinfo_ipv4_timeouts;
+		EVDNS_UNLOCK(data->evdns_base);
 	}
 	if (data->ipv6_request.r) {
 		evdns_cancel_request(NULL, data->ipv6_request.r);
