diff -Naur smap.supported/config.h smap/config.h
--- smap.supported/config.h	2009-06-14 22:18:57.000000000 -0400
+++ smap/config.h	2009-06-24 16:36:50.000000000 -0400
@@ -113,6 +113,7 @@
 
 #define DEFAULT_SIP_PORT	5060
 #define DEFAULT_TIMEOUT		500		/* in ms */
+#define DEFAULT_RATELIMIT       25
 
 /* randomizer related ********************************************************/
 enum { RAND_CALLID = 1, RAND_TAG, RAND_CSEQ, RAND_BRANCH };
diff -Naur smap.supported/listener.c smap/listener.c
--- smap.supported/listener.c	2009-06-14 22:18:57.000000000 -0400
+++ smap/listener.c	2009-06-15 04:36:40.000000000 -0400
@@ -130,7 +130,7 @@
 			/* use Call-ID to match response to requests */
 			callid = response_getcallid(msg);
 			if (callid == 0) {
-				error(ERR_NOTICE, "could not parse Call-ID");
+				error(ERR_DEBUG, "could not parse Call-ID");
 				goto nextmsg;
 			}
 			state = state_lookup_by_callid(callid);
diff -Naur smap.supported/results.c smap/results.c
--- smap.supported/results.c	2009-06-14 22:18:57.000000000 -0400
+++ smap/results.c	2009-06-24 16:38:00.000000000 -0400
@@ -39,6 +39,7 @@
 			(task->results & RES_ICMP_REACH) ? "reachable" : "unreachable",
 			(task->results & RES_SIP_ENABLED) ? "enabled" : "disabled");
 		if (task->results & RES_SIP_ENABLED)
+		  error(ERR_DEBUG, "Looking up fingerprint");
 			fingerprint_lookup(*task->fp);
 		break;
 	default:
diff -Naur smap.supported/smap.c smap/smap.c
--- smap.supported/smap.c	2009-06-14 22:18:57.000000000 -0400
+++ smap/smap.c	2009-06-24 17:09:39.000000000 -0400
@@ -197,7 +197,7 @@
     config.sip_port = DEFAULT_SIP_PORT;
     config.sip_domain = NULL;
     config.timeout = DEFAULT_TIMEOUT;
-	config.ratelimit = 0;
+    config.ratelimit = DEFAULT_RATELIMIT;
 
 	printf("\nsmap %s <hs@123.org> "
         "http://www.wormulon.net/\n\n", SMAP_VERSION);
@@ -338,12 +338,15 @@
             break; /* make gcc happy */
     }
 error_while_scanning:
-
 	pthread_join(pth_worker, NULL);
 	pthread_kill(pth_worker, SIGINT);
 	pthread_kill(pth_listener, SIGINT);
 	stats_dump();
 
+	signal(SIGINT, SIG_DFL);
+	signal(SIGTERM, SIG_DFL);
+	signal(SIGKILL, SIG_DFL);
+
 	/* clean up */
 	pthread_mutex_destroy(&scrlock);
 	pthread_mutex_destroy(&tasklock);