diff --git a/src/model.zig b/src/model.zig
index e7f37c24167698a469d9409af66e0670aa5cdfda..43e20a61d30120e6674e5d0df68867c613277599 100644
--- a/src/model.zig
+++ b/src/model.zig
@@ -237,11 +237,12 @@ pub const Dir = packed struct {
     name: u8,
 
     pub fn fmtPath(self: *const @This(), withRoot: bool, out: *std.ArrayList(u8)) void {
+        if (!withRoot and self.parent == null) return;
         var components = std.ArrayList([:0]const u8).init(main.allocator);
         defer components.deinit();
         var it: ?*const @This() = self;
         while (it) |e| : (it = e.parent)
-            if (withRoot or e != root)
+            if (withRoot or e.parent != null)
                 components.append(e.entry.name()) catch unreachable;
 
         var i: usize = components.items.len-1;