diff --git a/src/browser.c b/src/browser.c
index 596f29d5e2cc2a711847c716fb4dbdccfe70fb61..86c5cd9dcdb1a5dd70a9a0c527144f47c72d73fa 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -145,7 +145,7 @@ void browse_draw_info(struct dir *dr) {
   attroff(A_BOLD);
 
   ncaddstr(2,  9, cropstr(dr->name, 49));
-  ncaddstr(3,  9, cropstr(getpath(dr), 49));
+  ncaddstr(3,  9, cropstr(getpath(dr->parent), 49));
   ncaddstr(4,  9, dr->flags & FF_DIR ? "Directory"
       : dr->flags & FF_FILE ? "File" : "Other (link, device, socket, ..)");
   ncprint(6, 18, "%s (%s B)", formatsize(dr->size),  fullsize(dr->size));
@@ -248,7 +248,7 @@ int browse_draw() {
   mvhline(1, 0, '-', wincols);
   if(cur) {
     mvaddch(1, 3, ' ');
-    tmp2 = getpath(cur);
+    tmp2 = getpath(cur->parent);
     mvaddstr(1, 4, cropstr(tmp2, wincols-8));
     mvaddch(1, 4+((int)strlen(tmp2) > wincols-8 ? wincols-8 : (int)strlen(tmp2)), ' ');
   }
@@ -416,7 +416,7 @@ int browse_key(int ch) {
 
    /* refresh */
     case 'r':
-      calc_init(getpath(browse_dir), browse_dir->parent);
+      calc_init(getpath(browse_dir->parent), browse_dir->parent);
       nonfo++;
       sort++;
       break;
diff --git a/src/delete.c b/src/delete.c
index 502e436f7bb585eb0d3e593817f4ea94b62154d7..71930213b4eaebbf5d6b16c4436d7ca81d418f66 100644
--- a/src/delete.c
+++ b/src/delete.c
@@ -191,7 +191,7 @@ int delete_dir(struct dir *dr) {
   char *path;
 
   /* calling path_chdir() this often isn't exactly efficient... */
-  path = getpath(dr->sub);
+  path = getpath(dr->parent);
   path_chdir(path);
 
   /* check for input or screen resizes */