Simply bugfixes, see patch to debian/changelog for details
diff --git a/signal.c b/signal.c
index 66f6b3f..baa3947 100644
--- a/signal.c
+++ b/signal.c
@@ -210,13 +210,13 @@
 	strcpy(outstr, s);
 	s = outstr + strlen(outstr);
 	nsigs = 0;
-	for (i = 1; i <= nsignals; i++) {
+	for (i = 1; i < nsignals; i++) {
 		if (sigismember(mask, i) == 1)
 			nsigs++;
 	}
 	if (nsigs >= nsignals * 2 / 3) {
 		*s++ = '~';
-		for (i = 1; i <= nsignals; i++) {
+		for (i = 1; i < nsignals; i++) {
 			switch (sigismember(mask, i)) {
 			case 1:
 				sigdelset(mask, i);
@@ -229,7 +229,7 @@
 	}
 	format = "%s";
 	*s++ = '[';
-	for (i = 1; i <= nsignals; i++) {
+	for (i = 1; i < nsignals; i++) {
 		if (sigismember(mask, i) == 1) {
 			sprintf(s, format, signalent[i] + 3); s += strlen(s);
 			format = " %s";