diff --git a/src/browser.c b/src/browser.c
index 6ad387714ced3e5d26927755dc0a453cf2a1a535..9b6583e3e7a449ee7df7dbdbdad766ea307cc5ee 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -34,7 +34,7 @@
  * Assume path has already been tilde-expanded. */
 char *do_browser(char *path, DIR *dir)
 {
-    int kbinput = ERR, longest, selected = 0, width = 0;
+    int kbinput, longest, selected, width;
     bool meta_key = FALSE, func_key = FALSE;
     bool old_const_update = ISSET(CONST_UPDATE);
     size_t numents;
@@ -54,6 +54,10 @@ char *do_browser(char *path, DIR *dir)
   change_browser_directory:
 	/* We go here after the user selects a new directory. */
 
+    kbinput = ERR;
+    selected = 0;
+    width = 0;
+
     path = mallocstrassn(path, get_full_path(path));
 
     /* Assume that path exists and ends with a slash. */