diff --git a/Makefile.am b/Makefile.am
index 34367067c527c178017fa6904588281976d275ea..0a53de1093a06c1f691877cca022488beec64f05 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,8 +9,9 @@
 AUTOMAKE_OPTIONS = foreign 1.2
 lib_LTLIBRARIES = liboop.la liboop-adns.la liboop-glib.la liboop-www.la
 INCLUDES = $(GLIB_INCLUDES) $(WWW_INCLUDES)
+EXTRA_DIST = liboop.spec
 
-# versions updated as of 0.4; 0.5 only changes build stuff.
+# versions updated as of 0.4; 0.5 and 0.6 only change build stuff.
 
 liboop_la_LDFLAGS = -version-info 2:0:0 # version:revision:age
 liboop_la_SOURCES = sys.c select.c signal.c alloc.c
diff --git a/Makefile.in b/Makefile.in
index aeae6357fb622c4c37152218b023a20967f931e3..776b80af4ee0a7cde3f02da5cc3fce5cca167eb6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -88,8 +88,9 @@ WWW_LIBS = @WWW_LIBS@
 AUTOMAKE_OPTIONS = foreign 1.2
 lib_LTLIBRARIES = liboop.la liboop-adns.la liboop-glib.la liboop-www.la
 INCLUDES = $(GLIB_INCLUDES) $(WWW_INCLUDES)
+EXTRA_DIST = liboop.spec
 
-# versions updated as of 0.4; 0.5 only changes build stuff.
+# versions updated as of 0.4; 0.5 and 0.6 only change build stuff.
 
 liboop_la_LDFLAGS = -version-info 2:0:0 # version:revision:age
 liboop_la_SOURCES = sys.c select.c signal.c alloc.c
diff --git a/oop-adns.h b/oop-adns.h
index 82a7a84c8d3e47e3c46e195156cfa29f62dab3ac..030875b0774622a33fab4f6fc856d4b7dfb49804 100644
--- a/oop-adns.h
+++ b/oop-adns.h
@@ -18,7 +18,7 @@ typedef struct oop_adns_query oop_adns_query;
 typedef void *oop_adns_call(oop_adapter_adns *,adns_answer *,void *);
 
 /* A liboop adns adapter creates an adns instance tied to a liboop source. 
-   oop_adns_new() Returns NULL on failure.*/
+   oop_adns_new() returns NULL on failure.*/
 oop_adapter_adns *oop_adns_new(oop_source *,adns_initflags,FILE *diag);
 void oop_adns_delete(oop_adapter_adns *);
 
diff --git a/test-oop.c b/test-oop.c
index 23dbaf251b0020f504661bcfd627478dbe6273c5..13d2baaf6e978a1c521ebe24033d5c299fc2da8b 100644
--- a/test-oop.c
+++ b/test-oop.c
@@ -124,11 +124,12 @@ static void *on_signal(oop_source *source,int sig,void *data) {
 #include "adns.h"
 #include "oop-adns.h"
 
+#define ADNS_CANCEL
 #define NUM_Q 6
 oop_adns_query *q[NUM_Q];
 oop_adapter_adns *adns;
 
-void *stop_lookup(oop_source *src,int sig,void *data) {
+void cancel_adns(void) {
 	int i;
 
 	for (i = 0; i < NUM_Q; ++i)
@@ -141,7 +142,10 @@ void *stop_lookup(oop_source *src,int sig,void *data) {
 		oop_adns_delete(adns);
 		adns = NULL;
 	}
+}
 
+void *stop_lookup(oop_source *src,int sig,void *data) {
+	cancel_adns();
 	src->cancel_signal(src,SIGQUIT,stop_lookup,NULL);
 	return OOP_CONTINUE;
 }
@@ -151,17 +155,20 @@ void *on_lookup(oop_adapter_adns *adns,adns_answer *reply,void *data) {
 	for (i = 0; i < NUM_Q; ++i) if (data == &q[i]) q[i] = NULL;
 
 	printf("adns: %s =>",reply->owner);
-	if (adns_s_ok != reply->status) {
+	if (adns_s_ok != reply->status)
 		printf(" error: %s\n",adns_strerror(reply->status));
-		return OOP_CONTINUE;
+	else {
+		if (NULL != reply->cname) printf(" (%s)",reply->cname);
+		assert(adns_r_a == reply->type);
+		for (i = 0; i < reply->nrrs; ++i)
+			printf(" %s",inet_ntoa(reply->rrs.inaddr[i]));
+		printf("\n");
 	}
-	if (NULL != reply->cname) printf(" (%s)",reply->cname);
-	assert(adns_r_a == reply->type);
-	for (i = 0; i < reply->nrrs; ++i)
-		printf(" %s",inet_ntoa(reply->rrs.inaddr[i]));
-	printf("\n");
-	free(reply);
 
+	free(reply);
+#ifdef ADNS_CANCEL
+	cancel_adns();
+#endif
 	return OOP_CONTINUE;
 }