diff --git a/tip/cmdtab.c b/tip/cmdtab.c
index b7b974e338edf5a0b7d975c4b1189d6355b4574f..5e9fd315e8b91abb300ecc4d69efd1769d0bf886 100644
--- a/tip/cmdtab.c
+++ b/tip/cmdtab.c
@@ -36,7 +36,7 @@
 static char sccsid[] = "@(#)cmdtab.c	8.1 (Berkeley) 6/6/93";
 #endif
 static const char rcsid[] =
-	"$Id: cmdtab.c,v 1.2 2000-12-27 00:49:33 mike Exp $";
+	"$Id: cmdtab.c,v 1.3 2001-08-16 16:33:27 stoller Exp $";
 #endif /* not lint */
 
 #include "tip.h"
@@ -49,6 +49,7 @@ esctable_t etable[] = {
 	{ '!',	NORM,	"shell",			 shell },
 	{ 'c',	NORM,	"change directory",		 chdirectory },
 	{ '.',	NORM,	"exit from tip",		 finish },
+	{ ',',	NORM,	"exit from tip",		 finish },
 	{CTRL('d'),NORM,"exit from tip",		 finish },
 	{CTRL('y'),NORM,"suspend tip (local+remote)",	 suspend },
 	{CTRL('z'),NORM,"suspend tip (local only)",	 suspend },
diff --git a/tip/hunt.c b/tip/hunt.c
index 245a70c36e070a261e95a5443317702d845f2573..a429406cc717d008854a62f3f650a1fe0575171c 100644
--- a/tip/hunt.c
+++ b/tip/hunt.c
@@ -36,7 +36,7 @@
 static char sccsid[] = "@(#)hunt.c	8.1 (Berkeley) 6/6/93";
 #endif
 static const char rcsid[] =
-	"$Id: hunt.c,v 1.6 2001-08-14 19:05:12 stoller Exp $";
+	"$Id: hunt.c,v 1.7 2001-08-16 16:33:27 stoller Exp $";
 #endif /* not lint */
 
 #ifdef USESOCKETS
@@ -172,9 +172,10 @@ socket_hunt(name)
 	}
 	alarm(0);
 	if (FD < 0) {
-		warn("%s", name);
 		deadfl = 1;
 	}
+	if (deadfl)
+		getremote_reset();
 	signal(SIGALRM, f);
 	return (deadfl ? -1 : 0);
 }
diff --git a/tip/remote.c b/tip/remote.c
index ee5911f46171f47a5a126947c90b4f3e35696e66..edeb5727a2746c60a29e8078bd78a0f4e8b5eee6 100644
--- a/tip/remote.c
+++ b/tip/remote.c
@@ -43,7 +43,7 @@ static const char copyright[] =
 static char sccsid[] = "@(#)remote.c	8.1 (Berkeley) 6/6/93";
 #endif
 static const char rcsid[] =
-	"$Id: remote.c,v 1.2 2000-12-27 00:49:35 mike Exp $";
+	"$Id: remote.c,v 1.3 2001-08-16 16:33:27 stoller Exp $";
 #endif /* not lint */
 
 #include "tip.h"
@@ -258,13 +258,14 @@ getremcap(host)
 		ET = 10;
 }
 
+static int lookedup = 0;
+
 char *
 getremote(host)
 	char *host;
 {
 	register char *cp;
 	static char *next;
-	static int lookedup = 0;
 
 	if (!lookedup) {
 		if (host == NOSTR && (host = getenv("HOST")) == NOSTR)
@@ -289,3 +290,12 @@ getremote(host)
 	}
 	return (DV);
 }
+
+void
+getremote_reset()
+{
+	lookedup = 0;
+	DV = 0;
+	BR = 0;
+	HW = 0;
+}