diff --git a/src/browser.c b/src/browser.c
index 2cca4b280b741e1f34285fb08f12bcfc1a85979a..d4a04dbb4d89c7678f8f8595cd41fa9587c29100 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -284,7 +284,7 @@ void showBrowser(void) {
   bcur = dat.sub;
   bgraph = 1;
   nodelay(stdscr, 0);
-  bflags = BF_SIZE;
+  bflags = BF_SIZE | BF_DESC | BF_NDIRF;
 
   drawBrowser(0);
   refresh();
@@ -324,7 +324,7 @@ void showBrowser(void) {
         if(bflags & BF_SIZE)
           toggle(bflags, BF_DESC);
         else
-          bflags = (bflags & BF_HIDE) + (bflags & BF_NDIRF) + BF_SIZE;
+          bflags = (bflags & BF_HIDE) + (bflags & BF_NDIRF) + BF_SIZE + BF_DESC;
         break;
       case 'p':
         toggle(sflags, SF_SI);
diff --git a/src/exclude.c b/src/exclude.c
index 7344a325ac66ce90fee675a91143c8744f4f7dcb..d51ffb5e83996ea78ee51a371e77c390b073228a 100644
--- a/src/exclude.c
+++ b/src/exclude.c
@@ -89,7 +89,7 @@ int matchExclude(char *path) {
     for(c = path; *c && !matched; c++)
       if(*c == '/' && c[1] != '/')
         matched = !fnmatch(n->pattern, c+1, 0);
-  } while((n = n->next) != NULL);
+  } while((n = n->next) != NULL && !matched);
 
   return(matched);
 }