diff --git a/ChangeLog b/ChangeLog
index 4889cb7294b88ba78de7a7948b0a303bc116aadd..1665542a3f127af2fbac607172e3d326e1255ec5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 git - ?
   - Implemented hard link detection
   - Properly select the next item after deletion
+	- Removed reliance of dirfd()
 
 1.5 - 2009-05-02
 	- Fixed incorrect apparent size on directory refresh
diff --git a/src/path.c b/src/path.c
index 6ff5412bb7319a4675052925adafb41207689142..949065b2e533fc19f8facdf99aa07ab66ea8e8ae 100644
--- a/src/path.c
+++ b/src/path.c
@@ -198,18 +198,13 @@ path_real_done:
 char *path_real(const char *orig) {
   int links = 0;
   char *tmp, *ret;
-  DIR *d;
 
   if(orig == NULL)
     return NULL;
-  if((d = opendir(".")) == NULL)
-    return NULL;
 
   tmp = path_absolute(orig);
   ret = path_real_rec(tmp, &links);
   free(tmp);
-  fchdir(dirfd(d));
-  closedir(d);
   return ret;
 }
 
diff --git a/src/path.h b/src/path.h
index c3312ebdbc012fb613afb2f2d9c775eacb0aa383..353500e3cab9ee4c9d2d150d014cbef537787542 100644
--- a/src/path.h
+++ b/src/path.h
@@ -32,6 +32,7 @@
   - Potentionally slow
   - Doesn't check return value of malloc() and realloc()
   - path_real doesn't check for the existance of the last component
+  - cwd is unreliable after path_real
 */
 
 #ifndef _path_h