diff -uNrp b/CVS/Entries a/CVS/Entries
--- b/CVS/Entries	2012-11-28 15:12:55.000000000 -0800
+++ a/CVS/Entries	2013-04-10 13:24:25.315297807 -0700
@@ -3,11 +3,11 @@
 /EPIC4-USERS-README/1.1/Thu May 28 03:49:38 2009//
 /FILES/1.2/Fri Apr 15 02:47:42 2005//
 /INSTALL/1.7/Wed Nov  2 03:11:58 2005//
-/KNOWNBUGS/1.899/Wed Nov 28 23:10:55 2012//
-/Makefile.in/1.15/Fri Nov 23 16:04:45 2012//
+/KNOWNBUGS/1.903/Tue Apr  2 03:43:14 2013//
+/Makefile.in/1.16/Tue Apr  2 03:43:14 2013//
 /README/1.2/Mon Jan  5 16:24:40 2004//
 /README-CRYPTO/1.3/Thu Jun 29 01:13:51 2006//
-/UPDATES/1.249/Wed Nov 28 23:10:55 2012//
+/UPDATES/1.250/Thu Jan 10 04:24:52 2013//
 /VOTES/1.3/Mon Jan  5 16:24:40 2004//
 /WISHLIST/1.1/Fri Jan  2 05:34:50 2009//
 /acconfig.h/1.44/Fri Apr 10 18:46:11 2009//
diff -uNrp b/KNOWNBUGS a/KNOWNBUGS
--- b/KNOWNBUGS	2012-11-28 15:10:55.000000000 -0800
+++ a/KNOWNBUGS	2013-04-10 13:24:25.321297939 -0700
@@ -3,6 +3,8 @@ EPIC5 Projects, Bugs, and other Errata:
 KNOWN ERRATA (eg, bugs, or unresolved requests):
 ------------------------------------------------
 * A func which shows window channels in descending order of "current-ness"
+* FIXED-SKIPPED windows should never receive abandoned channels.
+* whitefang says that mangling logfiles doens't work for color...
 
 MEDIUM-TERM PROJECTS
 --------------------
@@ -299,3 +301,7 @@ THE CHANGELOG SINCE THE LAST RELEASE:
 * One final batch of updates by clang....
 * Rewrite lastlog moving funcs to use windows ptrs instead of refnums (caf)
 * EPIC5-1.1.5 released here (Gallimaufry) (Commit ID: 1683)
+* Add /QUEUE -RUNONE
+* Caf and jm confirmed that ircu doesn't use 307 for USERIP any more.
+* ignorectl(DELETE) is not silent and it should be.
+* To satisfy fedora packaging rules, accept DESTDIR for 'make install'
diff -uNrp b/Makefile.in a/Makefile.in
--- b/Makefile.in	2012-11-23 08:04:45.000000000 -0800
+++ a/Makefile.in	2013-04-10 13:24:25.312297741 -0700
@@ -115,17 +115,17 @@ EPIC 	  = $(epic5_exe)-$(VERSION)
 EPIC_OLD  = $(epic5_exe).old
 EPIC_LINK = $(epic5_exe)
 installepic5 installirc: epic5 installdirs test
-	if ./my_test \( ! -f $(IP)$(EPIC) \) \
-			-o source/epic5 -nt $(IP)$(EPIC); then \
-		$(INSTALL_PROGRAM) source/epic5 $(IP)$(EPIC);	\
-		if ./my_test -f $(IP)$(EPIC_OLD); then \
-			$(RM) $(IP)$(EPIC_OLD); \
+	if ./my_test \( ! -f $(IP)$(DESTDIR)$(EPIC) \) \
+			-o source/epic5 -nt $(IP)$(DESTDIR)$(EPIC); then \
+		$(INSTALL_PROGRAM) source/epic5 $(IP)$(DESTDIR)$(EPIC);	\
+		if ./my_test -f $(IP)$(DESTDIR)$(EPIC_OLD); then \
+			$(RM) $(IP)$(DESTDIR)$(EPIC_OLD); \
 		fi; \
-		if ./my_test -f $(IP)$(EPIC_LINK); then \
-			$(MV) $(IP)$(EPIC_LINK) $(IP)$(EPIC_OLD); \
+		if ./my_test -f $(IP)$(DESTDIR)$(EPIC_LINK); then \
+			$(MV) $(IP)$(DESTDIR)$(EPIC_LINK) $(IP)$(DESTDIR)$(EPIC_OLD); \
 		fi; \
-		$(RM) $(IP)$(EPIC_LINK); \
-		ln -s $(epic5)-$(VERSION) $(IP)$(EPIC_LINK); \
+		$(RM) $(IP)$(DESTDIR)$(EPIC_LINK); \
+		ln -s $(epic5)-$(VERSION) $(IP)$(DESTDIR)$(EPIC_LINK); \
 	fi
 
 #
@@ -136,9 +136,9 @@ wserv4: source/wserv.c source/gailib.c s
 
 WSERV	 = $(wserv_exe)
 installwserv4: wserv4 installdirs test
-	if ./my_test \( \! -f $(IP)$(WSERV) \) -o \
-			source/wserv4 -nt $(IP)$(WSERV); then	\
-		$(INSTALL_PROGRAM) source/wserv4 $(IP)$(WSERV);	\
+	if ./my_test \( \! -f $(IP)$(DESTDIR)$(WSERV) \) -o \
+			source/wserv4 -nt $(IP)$(DESTDIR)$(WSERV); then	\
+		$(INSTALL_PROGRAM) source/wserv4 $(IP)$(DESTDIR)$(WSERV);	\
 	fi
 
 
@@ -148,7 +148,7 @@ installwserv4: wserv4 installdirs test
 scriptdir = $(epic5dir)/script
 installscript: installdirs test
 	-@(								\
-		if ./my_test -f $(IP)$(scriptdir)/local; then		\
+		if ./my_test -f $(IP)$(DESTDIR)$(scriptdir)/local; then		\
 			if ./my_test -f script/local; then 		\
 				$(MV) @srcdir@/script/local 		\
 					@srcdir@/script/local.orig;	\
@@ -161,7 +161,7 @@ installscript: installdirs test
 			if ./my_test -x $$i; then \
 				chmod a-x $$i; \
 			fi; \
-			target=$(IP)$(scriptdir)/`basename $$i`; \
+			target=$(IP)$(DESTDIR)$(scriptdir)/`basename $$i`; \
 			if ./my_test -f $$target; then \
 				if ./my_test $$i -nt $$target; then \
 					$(INSTALL_DATA) $$i $$target; \
@@ -173,7 +173,7 @@ installscript: installdirs test
 				fi; \
 			else \
 				$(INSTALL_DATA) $$i $$target; \
-				if ./my_test -f $(IP)$(scriptdir)/gzip-scripts; then \
+				if ./my_test -f $(IP)$(DESTDIR)$(scriptdir)/gzip-scripts; then \
 					gzip -f $$target; \
 				fi; \
 			fi; \
@@ -183,19 +183,19 @@ installscript: installdirs test
 helpdir   = $(epic5dir)/help
 installhelp: installdirs
 	if ./my_test -d help ; then \
-		(cd @srcdir@/help; tar cf - .) | (cd $(IP)$(helpdir); tar xf -)  ; \
+		(cd @srcdir@/help; tar cf - .) | (cd $(IP)$(DESTDIR)$(helpdir); tar xf -)  ; \
 	else \
 		echo No help files to install. ; \
 	fi
 
 installman: installdirs
-	$(INSTALL_DATA) @srcdir@/doc/epic5.1 $(IP)$(mandir)/man1/$(epic5).1
+	$(INSTALL_DATA) @srcdir@/doc/epic5.1 $(IP)$(DESTDIR)$(mandir)/man1/$(epic5).1
 
 installdirs:
 	umask 022; \
-	@srcdir@/mkinstalldirs $(IP)$(epic5dir) $(IP)$(scriptdir) \
-		$(IP)$(helpdir) $(IP)$(bindir) $(IP)$(libexecdir) \
-		$(IP)$(mandir)/man1
+	@srcdir@/mkinstalldirs $(IP)$(DESTDIR)$(epic5dir) $(IP)$(DESTDIR)$(scriptdir) \
+		$(IP)$(DESTDIR)$(helpdir) $(IP)$(DESTDIR)$(bindir) $(IP)$(DESTDIR)$(libexecdir) \
+		$(IP)$(DESTDIR)$(mandir)/man1
 
 test.o: @srcdir@/test.c
 	$(CC) -c @srcdir@/test.c
diff -uNrp b/script/alloc_dump_summary.sh a/script/alloc_dump_summary.sh
--- b/script/alloc_dump_summary.sh	1969-12-31 16:00:00.000000000 -0800
+++ a/script/alloc_dump_summary.sh	2013-04-10 13:24:25.318297873 -0700
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+# alloc_dump_summary.sh
+# summarises the output of the /ALLOCDUMP epic command.
+# - caf
+
+last_file_line=""
+
+echo "file/line	alloc_count	alloc_bytes"
+cut -f1-2 |
+ sort |
+ (while read file_line alloc_bytes; do
+     if [ "$file_line" != "$last_file_line" ]; then
+         if [ "$last_file_line" != "" ]; then
+             echo "$last_file_line	$alloc_count	$alloc_total"
+         fi
+         last_file_line="$file_line"
+         alloc_total=$((alloc_bytes))
+         alloc_count=1
+     else
+         alloc_total=$((alloc_total + alloc_bytes))
+         alloc_count=$((alloc_count + 1))
+	 fi
+  done
+  if [ "$last_file_line" != "" ]; then
+      echo "$last_file_line	$alloc_count	$alloc_total"
+  fi)
+     
diff -uNrp b/script/CVS/Entries a/script/CVS/Entries
--- b/script/CVS/Entries	2012-11-28 15:12:55.000000000 -0800
+++ a/script/CVS/Entries	2013-04-10 13:24:25.316297829 -0700
@@ -1,6 +1,7 @@
 /2.8script/1.10/Thu Aug 11 04:51:57 2005//
 /activity/1.2/Wed May  9 00:20:35 2007//
 /addset/1.3/Fri Jan  8 06:34:54 2010//
+/alloc_dump_summary.sh/1.1/Wed Mar 27 23:12:03 2013//
 /altchan/1.6/Fri Jan  8 06:34:54 2010//
 /ambig/1.4/Wed Jan 20 03:53:37 2010//
 /autoget/1.11/Mon Mar 10 06:29:39 2008//
diff -uNrp b/source/CVS/Entries a/source/CVS/Entries
--- b/source/CVS/Entries	2012-11-28 15:12:55.000000000 -0800
+++ a/source/CVS/Entries	2013-04-10 13:24:25.302297521 -0700
@@ -22,10 +22,10 @@
 /glob.c/1.16/Sat Nov 24 01:42:51 2012//
 /hook.c/1.93/Tue Nov 27 22:50:57 2012//
 /if.c/1.45/Sun Nov 25 05:56:28 2012//
-/ignore.c/1.36/Tue Nov 27 22:50:57 2012//
+/ignore.c/1.37/Wed Mar 27 23:12:06 2013//
 /info.c.sh.in/1.2/Fri Sep 27 17:06:39 2002//
 /input.c/1.67/Sat Nov 24 18:53:36 2012//
-/irc.c/1.1352/Wed Nov 28 23:10:58 2012//
+/irc.c/1.1356/Tue Apr  2 03:43:16 2013//
 /ircaux.c/1.234/Tue Nov 27 22:52:23 2012//
 /ircsig.c/1.9/Fri Nov 28 16:28:03 2008//
 /keys.c/1.61/Mon Nov 26 05:09:35 2012//
@@ -39,11 +39,11 @@
 /network.c/1.86/Mon Jun 11 02:39:30 2012//
 /newio.c/1.70/Sun Jun 24 23:07:54 2012//
 /notify.c/1.37/Wed Nov 28 02:13:30 2012//
-/numbers.c/1.100/Thu Mar 18 01:31:09 2010//
+/numbers.c/1.101/Sun Feb 17 13:02:46 2013//
 /output.c/1.25/Sat Nov 24 01:42:51 2012//
 /parse.c/1.95/Sat Nov 24 01:42:51 2012//
 /perl.c/1.24/Sun Nov 25 05:56:28 2012//
-/queue.c/1.15/Fri Apr  4 04:51:05 2008//
+/queue.c/1.16/Thu Jan 10 04:24:54 2013//
 /reg.c/1.20/Mon Nov 26 05:09:35 2012//
 /ruby.c/1.14/Sun Jul  5 04:29:44 2009//
 /screen.c/1.149/Wed Nov 28 03:12:07 2012//
diff -uNrp b/source/ignore.c a/source/ignore.c
--- b/source/ignore.c	2012-11-27 14:50:57.000000000 -0800
+++ a/source/ignore.c	2013-04-10 13:24:25.302297521 -0700
@@ -1,4 +1,4 @@
-/* $EPIC: ignore.c,v 1.36 2012/11/27 22:50:57 jnelson Exp $ */
+/* $EPIC: ignore.c,v 1.37 2013/03/27 23:12:06 jnelson Exp $ */
 /*
  * ignore.c: handles the ingore command for irc 
  *
@@ -1061,7 +1061,13 @@ char *	ignorectl (char *input)
 		window_display = owd;
 		RETURN_INT(i->refnum);
 	} else if (!my_strnicmp(listc, "DELETE", len)) {
-		RETURN_INT(remove_ignore(input));
+		int	retval;
+
+		owd = window_display;
+		window_display = 0;
+		retval = remove_ignore(input);
+		window_display = owd;
+		RETURN_INT(retval);
 	} else if (!my_strnicmp(listc, "PATTERN", len)) {
 		RETURN_MSTR(get_ignores_by_pattern(input, 0));
 	} else if (!my_strnicmp(listc, "RPATTERN", len)) {
diff -uNrp b/source/irc.c a/source/irc.c
--- b/source/irc.c	2012-11-28 15:10:58.000000000 -0800
+++ a/source/irc.c	2013-04-10 13:24:25.307297631 -0700
@@ -1,4 +1,4 @@
-/* $EPIC: irc.c,v 1.1352 2012/11/28 23:10:58 jnelson Exp $ */
+/* $EPIC: irc.c,v 1.1356 2013/04/02 03:43:16 jnelson Exp $ */
 /*
  * ircII: a new irc client.  I like it.  I hope you will too!
  *
@@ -52,7 +52,7 @@ const char internal_version[] = "2012112
 /*
  * In theory, this number is incremented for every commit.
  */
-const unsigned long	commit_id = 1683;
+const unsigned long	commit_id = 1687;
 
 /*
  * As a way to poke fun at the current rage of naming releases after
diff -uNrp b/source/numbers.c a/source/numbers.c
--- b/source/numbers.c	2010-03-17 18:31:09.000000000 -0700
+++ a/source/numbers.c	2013-04-10 13:24:25.296297388 -0700
@@ -1,4 +1,4 @@
-/* $EPIC: numbers.c,v 1.100 2010/03/18 01:31:09 jnelson Exp $ */
+/* $EPIC: numbers.c,v 1.101 2013/02/17 13:02:46 jnelson Exp $ */
 /*
  * numbers.c: handles all those strange numeric response dished out by that
  * wacky, nutty program we call ircd 
@@ -380,7 +380,6 @@ void 	numbered_command (const char *from
 		goto END;
         }
 
-	case 307:		/* #define RPL_USERIP           307 */
 	case 340:		/* #define RPL_USERIP?          340 */
 		if (!get_server_005(from_server, "USERIP"))
 			break;
diff -uNrp b/source/queue.c a/source/queue.c
--- b/source/queue.c	2008-04-03 21:51:05.000000000 -0700
+++ a/source/queue.c	2013-04-10 13:24:25.304297565 -0700
@@ -1,4 +1,4 @@
-/* $EPIC: queue.c,v 1.15 2008/04/04 04:51:05 jnelson Exp $ */
+/* $EPIC: queue.c,v 1.16 2013/01/10 04:24:54 jnelson Exp $ */
 /*
  *  queue.c - The queue command
  *
@@ -69,6 +69,7 @@ static void	list_all_queues (Queue **);
 static void	run_queue (Queue **, const char *);
 static int	add_to_queue (Queue **, const char *, const char *, const char *);
 static void	delete_from_queue (Queue **, const char *, int);
+static void	run_one_queue (Queue **list, const char *name);
 
 BUILT_IN_COMMAND(queuecmd)
 {
@@ -82,6 +83,7 @@ BUILT_IN_COMMAND(queuecmd)
 		flush 		= 0,
 		delete		= 0,
 		expand_now	= 0,
+		runone		= 0,
 		number          = -1;
 
 	if (!*args) {
@@ -104,6 +106,8 @@ BUILT_IN_COMMAND(queuecmd)
 		    list = 1;
 		else if (!my_strnicmp(arg + 1, "DO", 2))
 		    run = 1;
+		else if (!my_strnicmp(arg + 1, "RUNONE", 4))
+		    runone = 1;
 		else if (!my_strnicmp(arg + 1, "DELETE", 2))
 		    delete = 1;
 		else if (!my_strnicmp(arg + 1, "FLUSH", 1))
@@ -113,6 +117,7 @@ BUILT_IN_COMMAND(queuecmd)
 		else if (!my_strnicmp(arg + 1, "HELP", 1)) {
 			say("Usage: /QUEUE -SHOW");
 			say("       /QUEUE -DO [-NO_FLUSH] <name>");
+			say("       /QUEUE -RUNONE <name>");
 			say("       /QUEUE [-LIST] <name>");
 			say("       /QUEUE [-FLUSH] <name>");
 			say("       /QUEUE [-DELETE] <name> <number>");
@@ -183,6 +188,8 @@ BUILT_IN_COMMAND(queuecmd)
 	if (run && no_flush == 0)
 		flush = 1;
 
+	if (runone)
+		run_one_queue(&queue_list, name);
 	if (run)
 		run_queue(&queue_list, name);
 	if (delete)
@@ -333,6 +340,25 @@ static void	delete_queue (Queue **list,
 	return;
 }
 
+static void	run_one_queue (Queue **list, const char *name)
+{
+	Queue *q;
+	CmdList	*c;
+
+	if (!(q = lookup_queue(list, name)))
+		return;
+
+	if (!(c = q->first))
+		return;
+
+	if (c->what)
+		call_lambda_command("QUEUE", c->what, c->subargs);
+	q->first = c->next;
+	new_free(&c->subargs);
+	new_free(&c->what);
+	new_free((char **)&c);
+}
+
 static void	run_queue (Queue **list, const char *name)
 {
 	Queue *q;
diff -uNrp b/UPDATES a/UPDATES
--- b/UPDATES	2012-11-28 15:10:55.000000000 -0800
+++ a/UPDATES	2013-04-10 13:24:25.321297939 -0700
@@ -1,5 +1,17 @@
 EPIC5-1.1.5
 
+*** News 01/09/2012 -- New /QUEUE flag, -RUNONE
+	I can't believe I didn't think of this before!
+	The /QUEUE -RUNONE flag will run the first command in a queue,
+	leaving the rest of the queue alone.  This will work great with
+	timer to create a FIFO queue that you can stagger commands through.
+	For example, a command that slows down output to the server
+
+		/TIMER -REPEAT -1 2 {QUEUE -RUNONE serverqueue}
+		fe (#one #two #three #four) x {
+			QUEUE serverqueue {join $x}
+		}
+
 *** News 11/28/2012 -- Lots of code quality improvements
 	Ancient graciously set up epic to run under clang and its static
 	analyzer, and we found lots of suggestions of things to fix.  
