diff -ur mtr-0.31/Makefile mtr-0.32/Makefile
--- mtr-0.31/Makefile	Sun Mar  7 22:20:36 1999
+++ mtr-0.32/Makefile	Sun Mar  7 22:18:07 1999
@@ -0,0 +1,16 @@
+
+#
+# This is an attempt on simplifying the compilation of mtr to a simple "make". 
+#
+
+firstrule: 
+	./configure
+	$(MAKE)
+
+clean: 
+	rm -f *.o *~ core
+
+distclean: clean
+	rm -f mtr config.cache config.status config.log \
+	          stamp-h stamp-h[0-9]* TAGS ID
+
diff -ur mtr-0.31/Makefile.am mtr-0.32/Makefile.am
--- mtr-0.31/Makefile.am	Thu Mar  4 19:04:10 1999
+++ mtr-0.32/Makefile.am	Sat Mar  6 14:29:14 1999
@@ -21,7 +21,9 @@
 mtr_DEPENDENCIES = $(GTK_OBJ) $(CURSES_OBJ)
 mtr_LDFLAGS = $(GTK_OBJ) $(CURSES_OBJ)
 
-EXTRA_DIST = SECURITY mtr.8
+EXTRA_DIST = SECURITY mtr.8 Makefile Makefile.dist
+distclean-local:
+	cp Makefile.dist Makefile
 
 DISTCLEANFILES = *~
 
diff -ur mtr-0.31/Makefile.dist mtr-0.32/Makefile.dist
--- mtr-0.31/Makefile.dist	Sun Mar  7 22:20:38 1999
+++ mtr-0.32/Makefile.dist	Sat Mar  6 15:01:21 1999
@@ -0,0 +1,16 @@
+
+#
+# This is an attempt on simplifying the compilation of mtr to a simple "make". 
+#
+
+firstrule: 
+	./configure
+	$(MAKE)
+
+clean: 
+	rm -f *.o *~ core
+
+distclean: clean
+	rm -f mtr config.cache config.status config.log \
+	          stamp-h stamp-h[0-9]* TAGS ID
+
diff -ur mtr-0.31/Makefile.in mtr-0.32/Makefile.in
--- mtr-0.31/Makefile.in	Fri Mar  5 00:45:43 1999
+++ mtr-0.32/Makefile.in	Sat Mar  6 14:29:38 1999
@@ -88,7 +88,7 @@
 mtr_DEPENDENCIES = $(GTK_OBJ) $(CURSES_OBJ)
 mtr_LDFLAGS = $(GTK_OBJ) $(CURSES_OBJ)
 
-EXTRA_DIST = SECURITY mtr.8
+EXTRA_DIST = SECURITY mtr.8 Makefile Makefile.dist
 
 DISTCLEANFILES = *~
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -431,7 +431,7 @@
 
 clean:  clean-recursive clean-am
 
-distclean:  distclean-recursive distclean-am
+distclean:  distclean-recursive distclean-am distclean-local
 	-rm -f config.status
 
 maintainer-clean:  maintainer-clean-recursive maintainer-clean-am
@@ -458,6 +458,8 @@
 
 install-exec-am: 
 	chmod u+s $(sbindir)/mtr
+distclean-local:
+	cp Makefile.dist Makefile
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff -ur mtr-0.31/NEWS mtr-0.32/NEWS
--- mtr-0.31/NEWS	Fri Mar  5 00:55:58 1999
+++ mtr-0.32/NEWS	Sun Mar  7 22:23:14 1999
@@ -1,5 +1,7 @@
 WHAT'S NEW?
 
+  v0.32 Fixed the FreeBSD bug detection stuff. 
+
   v0.31 Fixed a few documentation issues. -- Matt
         Changed the autoconf stuff to find the resolver library on 
             Solaris. -- REW
diff -ur mtr-0.31/TODO mtr-0.32/TODO
--- mtr-0.31/TODO	Fri Mar  5 00:42:03 1999
+++ mtr-0.32/TODO	Sat Mar  6 15:08:11 1999
@@ -27,12 +27,21 @@
     not be reset at the start of the "round". This way if you probe
     slowly (relative to the RTT time to the end host), it can probe
     all hosts in the first "round". 
+       -- DONE.
+
+  - allow "keyboard navigation" in the GTK version. 
+
 
 
 - Bugs to fix?
 
   - Do something useful if host couldn't be resolved. 
 
+  - Revert to curses mode even if DISPLAY is set, but a problem
+    prevents us from running in X11 mode.
+       -->  The problem is that gtk_init simply calls exit for us if
+            it finds a problem. Tricky! Suggestions welcome. 
+
 - Nice to have:
 
   - stop sending packets when a new host is getting entered. 
@@ -42,11 +51,6 @@
 
   - Check why it still tries to go for X11 display if DISPLAY is unset.
     (I saw code to handle this)
-
-  - Revert to curses mode even if DISPLAY is set, but a problem
-    prevents us from running in X11 mode.
-       -->  The problem is that gtk_init simply calls exit for us if
-            it finds a problem. Tricky! Suggestions welcome. 
 
   - Read environment variable "MTR_DEFAULTS" as a commandline before
     parsing the commandline.  -- DONE. (ok it's MTR_OPTIONS.)
diff -ur mtr-0.31/configure mtr-0.32/configure
--- mtr-0.31/configure	Fri Mar  5 00:45:44 1999
+++ mtr-0.32/configure	Sat Mar  6 14:27:09 1999
@@ -700,7 +700,7 @@
 
 PACKAGE=mtr
 
-VERSION=0.31
+VERSION=0.32
 
 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
   { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
diff -ur mtr-0.31/configure.in mtr-0.32/configure.in
--- mtr-0.31/configure.in	Fri Mar  5 00:45:24 1999
+++ mtr-0.32/configure.in	Fri Mar  5 08:28:21 1999
@@ -1,5 +1,5 @@
 AC_INIT(mtr.c)
-AM_INIT_AUTOMAKE(mtr, 0.31)
+AM_INIT_AUTOMAKE(mtr, 0.32)
 
 AC_SUBST(GTK_OBJ)
 AC_SUBST(CURSES_OBJ)
diff -ur mtr-0.31/gtk.c mtr-0.32/gtk.c
--- mtr-0.31/gtk.c	Thu Mar  4 19:04:10 1999
+++ mtr-0.32/gtk.c	Sat Mar  6 16:02:57 1999
@@ -50,7 +50,10 @@
 
 int gtk_detect(int *argc, char ***argv) {
   if(getenv("DISPLAY") != NULL) {
-    gtk_do_init(argc, argv);
+    /* If we do this here, gtk_init exits on an error. This happens
+       BEFORE the user has had a chance to tell us not to use the 
+       display... */
+    /*    gtk_do_init(argc, argv); */
     return TRUE;
   } else {
     return FALSE;
diff -ur mtr-0.31/net.c mtr-0.32/net.c
--- mtr-0.31/net.c	Fri Mar  5 00:19:39 1999
+++ mtr-0.32/net.c	Sun Mar  7 22:08:44 1999
@@ -214,7 +214,7 @@
   
   rv = sendto(sendsock, packet, packetsize, 0, 
 	 (struct sockaddr *)&remoteaddress, sizeof(remoteaddress));
-  if (first && (rv == EINVAL)) {
+  if (first && (rv < 0) && (errno == EINVAL)) {
     first = 0;
     ip->len = packetsize;
     rv = sendto(sendsock, packet, packetsize, 0, 
