diff --git a/src/builtins/path.cpp b/src/builtins/path.cpp
index dc29a70f9..87bb6d130 100644
--- a/src/builtins/path.cpp
+++ b/src/builtins/path.cpp
@@ -1,6 +1,8 @@
 // Implementation of the path builtin.
 #include "config.h"  // IWYU pragma: keep
 
+#include "path.h"
+
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
diff --git a/src/builtins/path.h b/src/builtins/path.h
index 537234b83..6ada1130d 100644
--- a/src/builtins/path.h
+++ b/src/builtins/path.h
@@ -4,6 +4,9 @@
 #include <cstring>
 #include <cwchar>
 
+#include "../maybe.h"
+#include "../io.h"
+
 class parser_t;
 
 maybe_t<int> builtin_path(parser_t &parser, io_streams_t &streams, const wchar_t **argv);