diff --git a/ChangeLog b/ChangeLog
index ec7c3e3d57b06a5ba1d4b83237ed0d2de17f40a1..c8e32df6415d1b3d17ce9cd56509b917f881a3af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,6 +20,11 @@ General -
 	- removed skipping . and .. when tabulating matches.
 	- Added the (char *) sizeof when allocating memory for the filename
 	  array (Rocco).
+  do_browser()
+	- Don't decrement longest by the length of path.  Fixes crashes
+	  on entering various dirs  (Rocco).
+	- Don't ungetch() the exit key, unneeded, fixes inerting a file
+	  causes exit code.
 - nano.c:
   main()
 	- Reorder the getopt options to be more or less alphabetical
diff --git a/files.c b/files.c
index facd2dcb44c16b5d31b8977fcaddd7d0ab663634..99ce38e87a4a86b8b2306c0a906b1a76767436c5 100644
--- a/files.c
+++ b/files.c
@@ -1131,8 +1131,6 @@ char **browser_init(char *path, int *longest, int *numents)
 	i++;
     }
 
-    longest -= strlen(path);
-
     if (*longest > COLS - 1)
 	*longest = COLS - 1;
 
@@ -1323,9 +1321,6 @@ char *do_browser(char *inpath)
 		/* Start over again with the new path value */
 		return do_browser(path);
 	    } else {
-
-		/* Work around for duplicating code */
-		ungetch(NANO_EXIT_KEY);
 		retval = path;
 		abort = 1;
 	    }