diff --git a/src/browser.c b/src/browser.c
index 2f1350f073cdd3bfa9111b60e1e745bf4a456272..2d53601e6bc4d3beb7036e9c9a8e2ccdc9df44ec 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -330,12 +330,9 @@ char *do_browser(char *path, DIR *dir)
 		/* If we've successfully opened a directory, and it's
 		 * "..", save the current directory in prev_dir, so that
 		 * we can select it later. */
-		} else if (strcmp(tail(filelist[selected]),
-			"..") == 0) {
-		    prev_dir = mallocstrcpy(NULL, filelist[selected]);
-		    prev_dir = mallocstrassn(prev_dir,
-			striponedir(prev_dir));
-		}
+		} else if (strcmp(tail(filelist[selected]), "..") == 0)
+		    prev_dir = mallocstrcpy(NULL,
+			striponedir(filelist[selected]));
 
 		dir = opendir(filelist[selected]);
 		if (dir == NULL) {